1vector<int> v={1,2,3,4,5,6,7,8,9};2for(auto&r: v)3{4r*=2;5}67等价于8for(autobeg=v.begin(),end=v.end();beg !=end;++beg)9{10auto&r=*beg;11r*=2;12} 即在范围for语句中,预存了end()的值,一旦在序列中添加(删除)元素,end函数的值就可能变的无效了。 3、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++) cout<<*it<<endl; (6)插入元素: vec.insert(vec...
5. vector 插入和删除操作 代码语言:javascript 复制 insert(const_iterator pos,int count,ele);//迭代器指向位置 pos 插入 count 个元素 ele.push_back(ele);//尾部插入元素 elepop_back();//删除最后一个元素erase(const_iterator start,const_iterator end);//删除迭代器从 start 到 end 之间的元素erase(...
int a = 10; int *p; p = &a; // 使用指针操作该变量 eg: *p = 11; // 操作后a变为 11 // 对于容器,使用迭代器操作容器中对应位置的值 // 当迭代器指向了容器中的某位置,则可以使用 * 加迭代器操作该位置了 // 定义一个vector std::vector<int> myVec; //添加10个元素 for (int j = ...
vectorvec(5) // 创建一个大小为5的int容器,默认值为0 vecotvec(10,1) // 创建一个大小为10容器且初始值都为1 vectorvec(tmp) // 用tep向量初始化vec容器 vectortmp(vec.begin(), vec.begin() + 3) // 用[vec,vec+3)初始化tmp int arr[5] = ...
std::vector<int>vec1;// 空的vector,数据类型为intstd::vector<int>vec2(4);// 4个值为0的vectorstd::vector<int>vec3(4,10);// 4个值为10的vector [10 10 10 10]std::vector<int>vec4(vec3.begin(),vec3.end());// [10 10 10 10]std::vector<int>vec5(vec3);// [10 10 10 ...
[5]={1,2,3,4,5};vector<int>v5(arr,&arr[5]);//以区间[beg;end)做为初值的vectorcout<<"当前元素数量"<<v5.size()<<endl;cout<<"v1大小是否为0:"<< (v1.empty()?"空":"不空")<<endl;cout<<"v2大小是否为0:"<< (v2.empty()?"空":"不空")<<endl;cout<<"v1可容纳的元素最...
vector<int> vec{2, 3, 4}; // 展开 const int[] _arr = {2, 3, 4}; vector<int> vec({_arr, _arr + 3}); 而这个构造函数内部自然会从这个常量数组copy进容器(注意这里不能move,因为数组是常量的)。而多参构造函数本身这是直接完美转发给T的构造函数,所以有可能将copy优化成move。 先看看常...
#include<vector>#include<iostream>#include<algorithm>usingnamespacestd;intmain(){// vector<int> a(10); // 初始化1:定义了10个整型元素的向量// vector<int> a(10, 2); //初始化2: 全部初始值为2//int arr[9] = {1,2,3,4,5,6,7,8,9};intarr[9]={1,2,4,9,7,8,3,6};vector...
user168715 5,56911 gold badge3333 silver badges4444 bronze badges Add a comment 23 As to std::vector<int> vec, vec to get int*, you can use two method: int* arr = &vec[0]; int* arr = vec.data(); If you want to convert any type T vector to T* array, just replace the...