vector 与 set区别

      首先,vector是序列式容器而set是关联式容器。set包含0个或多个不重复不排序的元素。也就是说set能够保证它里面所有的元素都是不重复的。另外对set容器进行插入时可以指定插入位置或者不指定插入位置。如insert(v.begin(),1),也可以直接用insert(1)。还有一点是

set对一些操作符没有进行重载,如<

下面是举个例子:

 

相关内容:实战c++中的vector系列--再谈vector的insert()方法(都是make_move_iterator惹的祸)

[之前说过了关于vector的insert()方法,把vector B的元素插入到vector A中,vector A中的结果我们可想而知,但是vector B中的元素还会如何?看看之

 #include <iostream> #include <list> #include <vector> #include <deque> #include <set> using namespace std; int main(void) { vector<int> v; v.insert(v.begin(),1); //如果使用insert(1)不指定插入位置,会出错 v.insert(v.begin(),2); v.insert(v.begin(),1); v.insert(v.begin(),3); vector<int>::iterator vp = v.begin(); for(vp = v.begin();vp < v.end(); vp++) cout << *vp << endl; return 0; } 运行程序输出的结果是: 3 1 2 1

 

#include <iostream> #include <list> #include <vector> #include <deque> #include <set> using namespace std; int main(void) { set<int> v; v.insert(v.begin(),1); v.insert(v.begin(),2); v.insert(v.begin(),1); v.insert(v.begin(),3); set<int>::iterator vp = v.begin(); //for(vp = v.begin();vp < v.end(); vp++) //如果使用这句会出错,因为set容器对<没有重载 while(vp!=v.end()) cout << *vp++ << endl; return 0; } 运行后结果是: 1 2 3 也就是说,set容器对有重复的元素只取其中的一个。

 

相关内容:C/C++--STL中list,vector,deque,map,set区别、联系和使用场景

[原谅地址:http://www.lifecrunch.biz/archives/202vector和built-in数组类似,它拥有一段连续的内存空间,并且起始地址不变,因此它能非常好的支持

相关问题

评论

写下你的理解