上关键代码:
set<int> c;
c.insert(1);
c.insert(2);
c.insert(3);
c.insert(4);
c.insert(5);
cout<<c.size()<<endl;
copy(c.begin(),c.end(),ostream_iterator<int>(cout," "));
cout<<endl;
cout<<"lower_bound(3) "<<*c.lower_bound(3)<<endl;
cout<<"upper_bound(3) "<<*c.upper_bound(3)<<endl;
cout<<"equal_range(3) "<<*c.equal_range(3).first<<" "
<<*c.equal_range(3).second<<endl;
代码大致意图:
新建set容器,插入1,2,3,4,5,然后求得各种bound
打印结果是:
5
1 2 3 4 5
lower_bound(3) 3
upper_bound(3) 4
equal_range(3) 3 4
Press any key to continue
修改的分割线————————————————————————————————
当我把前面c.insert(4)改成c.insert(3)后,
结果是这样的:
4
1 2 3 5
lower_bound(3) 3
upper_bound(3) 5
equal_range(3) 3 5
Press any key to continue
问题的分割线————————————————————————————————
set容器不能重复元素,可为什么修改后,upper_bound(3)会由4变成5?
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.