21xrx.com
2024-12-22 21:00:05 Sunday
登录
文章检索 我的文章 写文章
C++中的迭代器如何遍历List集合?
2023-07-06 01:51:38 深夜i     --     --
C++ 迭代器 遍历 List 集合

在C++中,常用的集合容器有vector、list、set等。其中,list是一种双向链表,由于其元素在物理存储上不是连续的,因此list的迭代器不支持随机访问,只能以线性方式遍历集合。

使用迭代器可以遍历整个list集合。迭代器是一种泛型指针,作用是将容器中的元素按顺序依次访问。list的迭代器支持前向和后向移动,但不支持随机访问。以下是使用迭代器遍历list集合的基本方法:

1. 定义迭代器变量

定义list的迭代器变量iter,可以使用auto关键字自动推断类型,也可以使用list ::iterator类型显式声明:

auto iter = listName.begin();

// 或

list ::iterator iter = listName.begin();

2. 遍历list集合

使用while循环遍历整个list集合,当迭代器变量iter指向list的末尾时,循环结束。

while(iter != listName.end()) {

  cout << *iter << " ";

  ++iter;

}

在循环中使用*iter取出迭代器所指向的元素值。迭代器支持自增运算符++,指向下一个元素。

3. 逆序遍历list集合

使用list的rbegin()和rend()方法获取反向迭代器的起始和结束位置,然后遍历整个list集合:

for (auto iter = listName.rbegin(); iter != listName.rend(); ++iter) {

  cout << *iter << " ";

}

使用反向迭代器可以逆序遍历list集合,反向迭代器同样支持自增运算符++,指向上一个元素。

总之,使用迭代器可以方便地遍历list集合,尤其适用于需要线性访问元素的情况。需要注意的是,在使用迭代器遍历时,避免改变list集合的结构,否则会导致迭代器失效,引发未定义的行为。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复