全国旗舰校区

不同学习城市 同样授课品质

北京

深圳

上海

广州

郑州

大连

武汉

成都

西安

杭州

青岛

重庆

长沙

哈尔滨

南京

太原

沈阳

合肥

贵阳

济南

下一个校区
就在你家门口
+
当前位置:首页  >  技术干货

c++中list(stllist)访问、获取元素方法是怎样的?

发布时间:2023-06-06 10:52:00
发布人:lxl

list(stllist)访问、获取元素方法

  在C++中,std::list是一个双向链表容器,可以使用下标运算符 [] 来访问和获取元素,因为 std::list 不支持随机访问,因此需要使用迭代器来访问和获取元素。以下是详细方法:

  使用迭代器访问和获取元素:

  (1)要访问第 i 个元素,需要使用迭代器从头开始遍历链表 i 次。迭代器的更新方式为:++iterator

  (2)获取第 i 个元素的值,则可以使用迭代器的 std::advance 函数向前移动 i 个元素,并返回迭代器指向的元素。

std::list<int> mylist = {1, 2, 3, 4, 5};
auto iter = mylist.begin();

//访问第3个元素
for (int i=0; i<3; ++i) {
++iter;
}

//获取第3个元素的值
int val = *iter;

   使用下标运算符[]访问和获取元素:

  std::list 不支持直接使用下标运算符 [] 来访问和获取元素,因为在链表中,想要访问第i个元素,需要从头结点开始一步一步遍历至第i个元素,这个过程需要时间复杂度为O(i)。如果长时间不重排元素,它的索引会失效,所以放它那个重心于迭代器的操作。

  总之,由于std::list是一个链表容器,而不是一个 vector 等支持随机访问的容器,因此需要使用迭代器来访问和获取元素。使用迭代器的好处是,在插入和删除元素后,迭代器指向的元素不会失效。

#list

相关文章

什么是系统负载?

什么是系统负载?

2023-10-15
线程池是什么?

线程池是什么?

2023-10-15
谷歌将对Android广告跟踪进行更改意味着什么?

谷歌将对Android广告跟踪进行更改意味着什么?

2023-10-15
APT能干什么,在Android开发中什么作用?

APT能干什么,在Android开发中什么作用?

2023-10-15

最新文章

常见网络安全面试题:Windows常用的命令有哪些?

常见网络安全面试题:Windows常用的命令有哪些?

2023-10-09
常见网络安全面试题:根据设备告警如何展开排查?

常见网络安全面试题:根据设备告警如何展开排查?

2023-10-09
常见网络安全面试题:mysql加固呢?(数据库加固)

常见网络安全面试题:mysql加固呢?(数据库加固)

2023-10-09
常见网络安全面试题:windows和linux加固?(操作系统加固)

常见网络安全面试题:windows和linux加固?(操作系统加固)

2023-10-09
在线咨询 免费试学 教程领取