永发信息网

STL set里面的值不是唯一吗?

答案:2  悬赏:70  手机版
解决时间 2021-01-27 17:13
#include
#include
#include
#include

using namespace std;

int main()
{
set s;
vector vs;
set::const_iterator iter;
set::iterator first;
set::iterator second;
for(int i = 1 ; i <= 10 ; ++i)
{
s.insert(i);
vs.push_back(i);
}

first = s.begin();
*first = 5;
cout<<"通过迭代器修改数值*first = 5后s 中值是 :"< for(iter = s.begin() ; iter != s.end() ; ++iter)
{
cout<<*iter<<" ";
}
cout<
vector::iterator vfirst=vs.begin();
*vfirst = 5;
cout<<"通过迭代器修改数值*vfirst = 5后vs 中的第一个元素是 :"< for(vfirst = vs.begin() ; vfirst != vs.end() ; ++vfirst)
{
cout<<*vfirst<<" ";
}
cout<}



最佳答案
你的编译器有问题!我把你的代码用VS2010编译不通过,set里面的元素是const,不能被修改,如果你修改就破坏了set作为集合的功能(修改后让两个值一样),这个是有编译器保证的。
test.cpp(21): error C3892: 'first' : you cannot assign to a variable that is const
全部回答
set是集容器。它的结构特征就是里面的元素是唯一且无序。 无序意味着不便于或不能随机存取操作,就不适用“第2个”这样读。 强行去这么去获得数据,是违反stl设计初衷的。拿错了工具,拿钳子做螺丝刀的活。 如果要用于第n个这样的随机操作,请转换或直接适用vector这样的容器。vector的随机效率是o(1)最快。 应用stl的关键在于选择合适的容器。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
神墨教育(五三西大道)地址有知道的么?有点事
高宝162印刷机清洗杆上的胶条要多少钱
文都MBA怎么样?
【乘法结合律用字母表示】乘法结合律用字母怎
看牌的意思是什么啊?知道的请说下!
为什么美凌净水器只需298就可以安装一台
现在这个社会学历低的人就不能学医吗
“非不可变者,伦纪也,非法制也;圣道也,非
女孩子从来没画过妆的话,想开始学习日常淡妆
intfunc(intn){if(n==0)returnn;elsereturn(n
告诉初恋说我有女朋友的个性签名
上饶聚味小吃培训学校地址好找么,我有些事要
溃引的意思是什么啊?知道的请说下!
舞乐天艺术学校(邮政二分校)怎么去啊,我要去
下列各项组合中,能体现生命系统由简单到复杂
推荐资讯
图猜成语是一种非常益智的游戏,几乎每个人都
回潮的意思是什么啊?知道的请说下!
治教的意思是什么啊?知道的请说下!
三姐妹女子会所地址在哪,我要去那里办事
自动获取dns服务器地址是什么意思
买来的石榴是酸的,放几天会不会变甜
容城艺术馆地址在什么地方,我要处理点事
为什么狗会抱着小姑娘或老人的腿耍流氓呢
岩嶅的意思是什么啊?知道的请说下!
中机中泰别克地址在哪,我要去那里办事
线圈在磁场中不切割导线的地方有哪些?一个是
请问香烟原料的片选是什么意思
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?