STL中set能不能返回指定的第几个元素的值?
比如:已知set<int>s;s.insert(10);s.insert(20);s.insert(30);现在我想得到第2个数,那么怎么返回输出啊?谢谢!...
比如:已知set<int> s;
s.insert(10);
s.insert(20);
s.insert(30);
现在我想得到第2个数,那么怎么返回输出啊?
谢谢! 展开
s.insert(10);
s.insert(20);
s.insert(30);
现在我想得到第2个数,那么怎么返回输出啊?
谢谢! 展开
展开全部
set<int>::iterator p;
int i = 0;
for(p = s.begin();p != s.end();p++,i++)
{
if(i == 1)//第2个数
{
cout<<*p; //输出
break;
}
}
int i = 0;
for(p = s.begin();p != s.end();p++,i++)
{
if(i == 1)//第2个数
{
cout<<*p; //输出
break;
}
}
追问
谢谢啊!不过我想要的是如果有很多数,比如1000000个数,想要快速的返回第k个数怎么弄啊?
如果按上面的做法肯定超时嘛。。
追答
我试过了用这样的方法我的机器取第1000000个数的时候用时0.218秒!我找不到其他的方法了。。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询