//vector::reserve() //重新分配存储空间大小 cout << C.capacity() << endl;//10 C.reserve(4); cout << C.capacity() << endl;//10 C.reserve(14); cout << C.capacity() << endl;//14 //vector::operator [] cout << F[0] << endl;//第一个元素是0 //vector::at() try { c...
3.与其它动态序列容器相比(deques, lists and forward_lists), vector在访问元素的时候更加高效,在末尾添加和删除元素相对高效。对于其它不在末尾的删除和插入操作,效率更低。比起lists和forward_lists统一的迭代器和引用更好。 4.vector动态数组可以通过数组名进行直接赋值! vector<yang> c; vector<yang> b; b...
(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; 1. 2. 3. (6)插入元素: vec.insert(vec.begin()+i,a);在第i+1个...
1、下标访问 //1、下标访问 cout<<"下标访问"<<endl; for(inti=0;i<points.size();i++) { cout<<points[i]<<endl; } 1. 2. 3. 4. 5. 6. 2、迭代器访问 //2、使用vector 操作集中的begin()和 end()所返回的迭代器 iterator cout<<"迭代器访问"<<endl; for(vector<Point>::iteratorit=...
(2)只有vector某位置已经存在元素时,才可以用下标去赋值/改值。如: vector<int>a;for(inti=0;i<a.size();i++){a[i]=i+2;cout<<a[i];} 结果:程序或许可以正常运行,但是不会输出任何内容。 (3)出现警告 warning C4018: “<”: 有符号/无符号不匹配。如: ...
直接使用下标操作符 [] 来访问 vector 中特定索引的元素。 vector<int> myVector = { 100,200,300,400 }; cout << myVector[0] << endl; // 100 cout << myVector[1] << endl; // 200 cout << myVector[2] << endl; // 300 cout << myVector[3] << endl; // 400 6.获取 vector...
vector<int> c(a,a+4); for(vector<int>::iterator it=c.begin();it<c.end();it++) b.push_back(*it); 4、也可以从文件中读取元素向向量中添加 复制代码代码如下: ifstream in("data.txt"); vector<int> a; for(int i; in>>i)
2. 就像数组一样,vector也采用的连续存储空间来存储元素。也就是意味着可以采用下标对vector的元素进行访问,和数组一样高效。但是又不像数组,它的大小是可以动态改变的,而且它的大小会被容器自动处理。 3. 本质讲,vector使用动态分配数组来存储它的元素。当新元素插入时候,这个数组需要被重新分配大小为了增加存储空间...
cout<<ivec[100]<endl;} vector中包含三个迭代器:first迭代器指向第一个元素;finish迭代器指向最后一个有效元素的下一个位置;end_of_storage迭代器指向整个vector空间末尾的下一个位置。访问vector中的成员都是通过这三个迭代器实现的。 通过下标访问vector中的元素时不会做边界检查,即便下标越界。也就是说,下标...
方案一表明vector可以用下标访问元素,显示出其随机访问的强大。并且由于vector的连续性,且for循环中有迭代器的自加,所以在删除一个元素后,迭代器需要减1。 方案二与方案一在迭代器的处理上是类似的,不过对元素的访问采用了迭代器的方法。 方案三与方案四基本一致,只是方案三利用了erase()函数的返回值是指向下一个...