c++的新型数组

#include<iostream>
#include<array>
#include<vector>


char buffer[512] = {0};//初始化静态区
int N(5);




void main(){


std::array<std::array<int,5>, 6> myint = {1,2,3,4,5};//这个是在栈上,会发生栈溢出




std::vector<std::vector<int>> myvector;//动态数组的嵌套




std::vector<std::string> myvector1;

myvector1.push_back("呵呵呵呵");
myvector1.push_back("呵呵呵呵1");
myvector1.push_back("呵呵呵呵2");
//删除的话可以用
myvector1.erase(myvector1.begin());//删除第一个元素
//删除所有的是
//myvector1.clear();


std::vector<std::string>::iterator start, end;//这个是定义迭代器开始和结束


start = myvector1.begin();//开始的位置
end = myvector1.end();//结束的位置
for (;start!=end;start++){
std::cout << start->c_str() << std::endl;//输出存入的值


}




//lamdbda表达式
std::vector<int> de;
de.push_back(1);
de.push_back(2);
int res;//初始化结果
std::for_each(de.begin(), de.end(), [&res](int x){res = +x; });//计算相加之后的和








//for (int i = 0; i < 100; i++){
// myvector.push_back(i);//往数组中加入数据,也叫做动态的数组//在堆上
//}


//数组的嵌套使用,打印输出
for (std::array<int, 5> mint1 : myint){
for (int a : mint1){
std::cout << a << std::endl;
}
}




//多元数组


std::tuple<int, double, char, const char *> mytuple(1,1,'1',"sin");
for (int i = 0; i < mytuple._Mysize;i++){
//std:: cout<< std::get<i>(mytuple) << std::endl;
//上面的那句话是错误的,但是把i改为1,2,3他就可以执行,但是不知道为什么不能直接给变量


}


//分配指定的内存
double *pdd;
pdd= new (buffer)double[N];//在静态区的空间






std::cin.get();//暂停的效果
}

猜你喜欢

转载自blog.csdn.net/qq_37353105/article/details/78299651