vector使用篇之erase】的更多相关文章

由于最近项目使用中发现了之前对vector的一个误区,由此发现自己对vect非常不了解,对此进行了一些了解,由此打算写一下关于vector使用方面的注意点,本篇先来讲一下vector的erase功能,若有不对,尽请大家指出 首先写了一个函数,用于打印vector内存情况,分别打印vector存储数据内容及内存地址: void printVec(vector<int> outputVec) { if (!outputVec.empty()) { int nSize = outputVec.siz…
vector::erase()返回下一个iter: STL中的源码: //清除[first, last)中的所有元素 iterator erase(iterator first, iterator last) { iterator i = copy(last, finish, first); //[last, finish)拷贝到first destroy(i, finish); finish = finish - (last - first); return first; } //清除某个位置…
vector<int> first;//Size()==2 first.push_back(); first.push_back(); //first.insert(2); vector<int>second;//Size()==3 + assign?? second.push_back(); second.push_back(); second.push_back(); vector<int>::iterator it = first.begin(); //secon…
以前就发现了vector中的erase方法有些诡异(^_^),稍不注意,就会出错.今天又一次遇到了,就索性总结一下,尤其是在循环体中用erase时,由于vector.begin() 和vector.end()是变化的,因此就引入了错误的可能性. erase的函数原型有两种形式: iterator erase(iterator position); iterator erase(iterator first, iterator last); vector<int> veci;veci.push_…
根据写博客开始总有一些事情的习惯,加鸡汤文,今天请原谅我记得. ============================================= 今天要写的内容是顺序型容器.首先,标准库定义了三种顺序容器类型:vector,list和deque(双端队列),这篇博客介绍的是vector容器. 首先要知道.vector不是一种数据类型,而是一个类模板,能够用来定义随意多种数据类型.比方说vector<int>是一种数据类型.vector<string>也是一种数据类型.使用…
早就想用容器类来实现一些编程,今天也算是学了一点吧. vector的使用方法参考了某位博主的一篇文章,感觉写得还是不错的:http://blog.csdn.net/always2015/article/details/44976729 然后还根据c++ primer plus 898 的#include<algorithm> 中的sort 来进行排序了.附上代码: #include <iostream> #include<math.h> #include <iom…
注意:以下测试案例都要加上相应的头文件,必要时要加上algorithm文件. 1.vector 连续存储结构,每个元素在内存上是连续的:支持高效的随机访问和在尾端插入/删除操作,但其他位置的插入/删除操作效率低下:相当于一个数组,但是与数组的区别为:内存空间的扩展.vector的初始化操作 int main(){ vector<int> v1; v1.push_back(1); v1.push_back(2); v1.push_back(3); vector<int> v2=v1;…
C++ 中经常使用的容器类有vector,list,map.其中vector和list的erase都是返回迭代器,但是map就比较不一样. 当在循环体中使用map::erase语句时,为了能够在任何机器上编译通过,并且能够跨平台(windows.linux),正确的写法是: map<int, int> l_map; map<int, int>::iterator l_iter = l_map.begin(); map<int, int>::iterator l_iter…
1.关联容器和顺序容器 C++中有两种类型的容器:顺序容器和关联容器,顺序容器主要有:vector.list.deque等.关联容器主要有map和set.如下图: 1.vector基本使用 #include <iostream> #include <stdlib.h> #include <string.h> #include <algorithm> #include <vector> using namespace std; //利用模版进行输出…
在c++编程中,用到迭代器的时候,往往不知道如何删除当前迭代器指向的元素. erase函数:   返回下一个迭代器. 只使用vector的erase函数,记住,该函数是迭代器失效,返回下一个迭代器. #include <iostream> #include <vector> using namespace std; int main() { vector<int> arr; arr.push_back(6); arr.push_back(7); arr.push_bac…