怎样获取STL list中的指定元素 貌似没有list.get(i)啊

huangyue158 2010-04-26 04:12:08
list<int> sortlist;
sortlist.push_back(3);
sortlist.push_back(15);
sortlist.push_back(8);
sortlist.push_back(7);

sortlist.sort();
排序过后我怎么获取第三个元素呢 ??
sortlist.get(3) 这个不是vector 不对的
难道只有用iter遍历吗
谢谢大家
...全文
3653 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
ypb362148418 2010-04-27
  • 打赏
  • 举报
回复
list只能用遍历了,因为它是用指针的,查找只能用遍历
Beyond_cn 2010-04-27
  • 打赏
  • 举报
回复
en ,遍历。。
冻结 2010-04-27
  • 打赏
  • 举报
回复
恕我孤陋,vector有get(i)吗?
不是at(i)?
「已注销」 2010-04-27
  • 打赏
  • 举报
回复
學習中。。。
wade_2003 2010-04-27
  • 打赏
  • 举报
回复
用遍历吧,这个估计没有别的好办法吧
cattycat 2010-04-27
  • 打赏
  • 举报
回复
list底层是链表实现的,不能直接get,只能遍历。vector是数组,所以可以用下标直接访问。
tianya0609 2010-04-26
  • 打赏
  • 举报
回复
只能是遍历,不过你可以用advanced函数把循环隐藏在内部,你看起来也许就不会那么不爽了。
某某9 2010-04-26
  • 打赏
  • 举报
回复
list 只有front和back 。
中间的元素 只能是遍历了
lenno 2010-04-26
  • 打赏
  • 举报
回复
LIST是链表结构,VECTOR才类似数组,前者优势是插入删除,
想在O(1)时间内定位,还是用VECTOR吧
decoupling 2010-04-26
  • 打赏
  • 举报
回复 1
如果能get(i)..那vector以后怎么混..
herman~~ 2010-04-26
  • 打赏
  • 举报
回复
list容器只能遍历了
如果是vector可以直接取【2】
pengzhixi 2010-04-26
  • 打赏
  • 举报
回复
遍历吧
lew0002 2010-04-26
  • 打赏
  • 举报
回复
list<int>::iterator iter = sortlist.begin();
advance(iter, n - 1);
效率和1楼是一样的是O(n),这是链表这种数据结构本身的特性啊
only_delusion 2010-04-26
  • 打赏
  • 举报
回复
用遍历 自然没有问题 但是效率较低

看看有没有别的函数 也许不叫get 叫find之类的
ryfdizuo 2010-04-26
  • 打赏
  • 举报
回复
恩,是的。计数遍历吧,

list<int> sortlist;
sortlist.push_back(3);
sortlist.push_back(15);
sortlist.push_back(8);
sortlist.push_back(7);
sortlist.sort();

list<int>::iterator iter = sortlist.begin();

for (int i=0; i<2; i++)
iter++;
cout << (*iter) << endl; //8

65,210

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧