c++ set容器知识相关

#include<iostream>#include<string>#include<vector>#include<map>#include<set>usingname... #include<iostream>
#include<string>
#include<vector>
#include<map>
#include<set>
using namespace std;
int main()
{
int a[]={1,3,5,8,3,1,5,8,1,5};
vector<int>vec(a,a+10);
vector<int>::iterator ve=vec.begin();
for(;ve!=vec.end();ve++)
cout << *ve<<' ';
cout<< endl;
set<int> se(vec.begin(),vec.end());
set<int>::iterator it=se.begin(); //迭代
for(;it!=se.end();it++)
cout << *it<<' ';
cout<< endl;
vec.push_back(2); //添加一个向量
ve=vec.begin();
for(;ve!=vec.end();ve++)
cout << *ve<<' ';
cout<< endl;
it=se.begin();
for(;it!=se.end();it++)
cout << *it<<' ';
cout<< endl;
}

上述代码中,我用vec.push_back(2); 添加了一个新的向量,如果在set容器中获取到新的节点。

还有一点请教,set中保存的节点是属于键值(key)还是数值(value).
改如何区分这2个值。
展开
 我来答
想飞高的菜鸟
2012-09-14 · 超过14用户采纳过TA的回答
知道答主
回答量:36
采纳率:0%
帮助的人:31.4万
展开全部
第一个没看明白什么意思,vec.push_back(2);只是添加到vector中去了,也没有到set中啊,你用vector初始化set也只是将vector中的值复制到set中去了,你改变vector而set并没有改变
第二个set中是存放可比较的值,不是键值对,map中是键值对
还有,对于STL中各种管理的对象最好要1有无参构造函数,2重载等号操作符,3析构函数不能抛出异常
对于有序容器,和使用排序算法的,元素必须是可比较的
jellycgl
2012-09-13 · TA获得超过417个赞
知道小有建树答主
回答量:1149
采纳率:66%
帮助的人:887万
展开全部
set保存的既是键值也是数值吧,有序容器都排好序了啊,根据排序不就区分了?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式