vector<int> v2(10);//v2[2].push_back(2); //错误,v2是一个数据类型为int的vecotr,v2[2]是个int数据 v2[9]=9;//v2[10]=10; //错误,长度为10,则下标最大为9 }
Type() : vec(10) { } // 要这么初始化 vector<int> vec;};
vector<int>vec(5,1);inta[5] = {2,2,2,2,2};vector<int>target(10);// 将vec中元素全部拷贝到target开始的位置中,注意拷贝的区间为vec.begin() ~ vec.end()的左闭右开的区间copy(vec.begin(), vec.end(), target.begin());// 拷贝区间也可以是由数组地址构成的区间copy(a, a+5, vec.beg...
vector<int> v[n] n 为第一维的长度 //初始化一个一维长度为3的vectorvector<vector<int>> vec(3);//为每个一维vector初始化不同长度vec[0] = vector<int>(5); vec[1] = vector<int>(10); vec[2] = vector<int>(2);//打印vecfor(inti =0; i < vec.size(); ++i) {for(intj =0; j...
vector<int> vec(10);vec[10] = 1; // 错误,抛出out_of_range异常 这样可以防止许多程序错误。2.3 vector可以直接传递 vector可以直接作为参数传递给函数,无需转换为指针。voidfunc(vector<int> vec){// ...} 这简化了代码,提高效率。2.4 vector内存动态分配 vector内部使用动态内存分配,根据需要自动扩容,...
个人理解,这个vector<int>申请的空间是动态的。在你定义vector的时候系统并不知道申请了多大的空间。属于动态申请空间就例如 int *a;a=(int *)malloc(n*sizeof(int));一样,当你调用新的输入的时候(直接输入也应该被重载了的)会分配新的空间达到一个动态调整空间大小的做用。而对于2维向量,...
vector<int>vec;//声明一个int型向量vector<int>vec(5);//声明一个初始大小为5的int向量vector<int>vec(10,1);//声明一个初始大小为10且值都是1的向量vector<int>vec(tmp);//声明并用tmp向量初始化vec向量vector<int>tmp(vec.begin(),vec.begin()+3);//用向量vec的第0个到第2个值初始化tmpint ...
vector<int> vec(10,100); 创建10个元素,每个元素值为100 vec.resize(r,vector<int>(c,0)); 二维数组初始化 reverse(vec.begin(),vec.end()) 将元素翻转 sort(vec.begin(),vec.end()); 排序,默认升序排列 vec.push_back(val); 尾部插入数字 ...
std::vector<int> vec = {1, 1, 1, 1, 1, 1, 1, 1, 1, 1}; // 10个1 ``` 这种方法在向量元素数量较少时比较方便,但当元素数量很大时,使用构造函数初始化或`std::fill`将更加合适。 ### 总结 最简单和最直接初始化`std::vector<int>`的所有元素为1的方法是使用它的构造函数。这种方法简单...
(1)头文件#include <vector>(2)创建vector对象,vector<int> vec;(3)尾部插入数字:vec.push_back(a); (4)使用下标访问元素,cout<<vec[0]<<endl;记住下标是从0开始的。 (5)使用迭代器访问元素. vector<int>::iterator it; for(it=vec.begin();it!=vec.end();it++) ...