STL中set能不能返回指定的第几个元素的值?

2024-12-21 12:53:52
推荐回答(2个)
回答1:

set是集容器。它的结构特征就是里面的元素是唯一且无序。
无序意味着不便于或不能随机存取操作,就不适用“第2个”这样读。
强行去这么去获得数据,是违反STL设计初衷的。拿错了工具,拿钳子做螺丝刀的活。

如果要用于第n个这样的随机操作,请转换或直接适用Vector这样的容器。Vector的随机效率是O(1)最快。
应用stl的关键在于选择合适的容器。

回答2:

set::iterator p;
int i = 0;
for(p = s.begin();p != s.end();p++,i++)
{
if(i == 1)//第2个数
{
cout<<*p; //输出
break;

}
}