for(vector<int>::iterator it=arr.begin(); it!=arr.end(); ){if(* it ==0) { it=arr.erase(it); }else{++it; } } 4、存放智能指针的问题 ①、vector保存原始指针:vector析构时不会释放指针指向的堆对象 ②、vector保存智能指针:vector析构时会释放智能指针所指向的对象,但是如果将所有权转移给...
std::vector<int> nVec(10,1); // 包含10个元素,且值为1 std::vector<int> nVec{10,1}; // 包含2个元素,值分别为10,1 然而,一般在程序中,并不会知道vector的元素个数,故使用以上方式倒显得繁琐,所以可以使用push_back,它会负责将一个值当成vector对象的尾元素“压到(push)”vector对象的“尾端(bac...
3.使用erase(const_iterator position)删除元素后,指向被删除元素的迭代器position将会失效(后文会提到),注意迭代器不是元素地址,虽然同样可以通过解引用操作符*访问元素。 先说正确写法,erase之后重新给it赋值: for (vector<int>::iterator it = vec.begin(); it != vec.end();) { if (*it == 4) { ...
std::vector 提供了迭代器(iterator)来遍历和访问容器中的元素。迭代器是一种类似于指针的对象,它支持在容器中的元素之间移动,并可以读取或修改这些元素的值。std::vector 的迭代器类型通常是 std::vector<T>::iterator,其中 T 是容器中存储的元素类型。
for ([std::vector](http://en.cppreference.com/w/cpp/container/vector)<int>::iterator it = ...
//std::vector<decltype(vi.begin())>iter_vector; std::vector<std::vector<int>::iterator> iter_vector; for (auto it = vi.begin(); it != vi.end(); ++it) { iter_vector.push_back(it); } auto pos = vi.begin(); pos++;
myvt.push_back("4. Chongqing City.");// 打印内容vector<string>::iterator it;for(it=myvt.begin();it!=myvt.end();it++) { cout<<*it<<endl; }intm=myvt.size();// 获取大小intn=myvt.capacity();// 获取容量intm1=myvt.max_size();// 获取最大大小cout<<"vector:myvt, size is...
vector<int> f(e, e + 6); //初始数据为 从数组中0到5(共6个)个元素,容量也是6 1. 2. 3. 4. 5. 6. 2. 常用函数 vector<int> a; vector<int> ::iterator iter = a.begin(); //获取迭代器首地址 vector<int> ::const_iterator const_iter = a.begin(); //获取const类型迭代器 只读 ...
//vector赋值 void PrintVector(vector<int>& v) { for (vector<int>::iterator it = v.begin(...
std::vector<int> vInts; 建议使用全局的命名域方式:usingnamespacestd; 函数 表述 c.assign(beg,end) c.assign(n,elem) 将[beg; end)区间中的数据赋值给c。 将n个elem的拷贝赋值给c。 c.at(idx) 传回索引idx所指的数据,如果idx越界,抛出out_of_range。