上关键代码:
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?