您的位置:首页 > 其它

vector与set区别(基础知识)

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

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

下面是举个例子:

[cpp] view plaincopy

#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

[cpp] view plaincopy

#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容器对有重复的元素只取其中的一个。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: