永发信息网

[C++标准程序库的问题] list的迭代器是否可以随机移动?

答案:2  悬赏:50  手机版
解决时间 2021-03-02 06:57
[C++标准程序库的问题] list的迭代器是否可以随机移动?
最佳答案
std::list是顺序容器,但不是随机访问容器(仅有std::vector,C数组和c++11中的std::array是),所以其迭代器只支持++和--这种双向的链式操作(c++11中的slist则只支持++)
如果想一次移动多个位置,也可以使用<iterator>里的advance函数,例子如下:

list<int>::iterator it = mylist.begin();
advance (it,5);
cout << "The sixth element in mylist is: " << *it << endl;
全部回答
由于list的内部实现是双向链表,链表就要求迭代器(指针)只能依次从前向后(或从后向前)移动,依次移动一个位置,因此list只定义了++和--操作符,而没有定义+、-、+=和-=等操作符。所以要想list的迭代器移动一段距离,就需要自己编程实现,用一个小循环就行了,代码如下: #include using namespace std; list mylist; … // mylist的初始化及其他操作 list::const_iterator itlist = mylist.begin(); // itlist向前移动len个距离 for ( int i= 0; i < len; i++ ) { ++itlist; } … // 其他操作
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
华为荣耀2通话免提键的问题
幼儿园春季开学典礼教师代表发言稿 幼儿园开
英雄联盟网吧南昌店地址有知道的么?有点事想
儿童玩具起名
1×(-2)×3×(-4)×…×29×(-30)的积的末尾
凤凰出版社初一年级暑假学习园地答案
西安海尔空调洗衣机售后维修服务中心在什么地
计算 m+n/m²-mn÷(m+n)×(m²-n²)
观致5仪表怎么显示100公里多少油耗
写出一组全是偶数的勾股数是
家常小菜地址在什么地方,想过去办事
Web前端工程师有压力吗
寇氏减肥NO.ZJQ3870在什么地方啊,我要过去处
【日啖荔枝三百颗】日啖荔枝三百颗,不辞长作
南和县人民医院地址在哪,我要去那里办事
推荐资讯
北京爱斯克的孙玮骏怎么样 好不好 失败案例多
英亚依拉克艾肯地址在哪,我要去那里办事
属牛的五行是什么
你好,我在网上买的长虹电视,开箱的时候发现
摘抄《西游记》6个情节,每个情节50字左右
中国人民银行决定从2012年7月6日开始,金融机
十则搞笑笑话:美女上班还可以玩手机吗
395澳门币等于多少港币
领秀理发店地址在哪,我要去那里办事
联通新出的无限流量卡有人把高速1.5g用完了么
怎么知道自己电脑支持php+mysql
Women are more generous with their money a
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?