21xrx.com
2024-06-03 01:55:11 Monday
登录
文章检索 我的文章 写文章
如何在C++中遍历list?
2023-07-06 04:23:29 深夜i     --     --
C++ 遍历 list

在C++中,list是一个常用的容器,可以存储不同类型的数据。在很多情况下,我们需要对list进行遍历来查找、修改或删除其中的元素。本文将介绍如何在C++中遍历list。

首先,需要注意的是,list是一个双向链表,每个元素都有一个前驱和一个后继。因此,在遍历list时,我们可以使用指针来访问每个元素。具体而言,可以使用迭代器(iterator)或auto关键字来定义指针。迭代器是一种特殊的指针,它可以指向容器中的任一元素。

使用迭代器遍历list的代码如下:


#include<iostream>

#include<list>

using namespace std;

int main()

{

  list<int> myList;

  myList.push_back(10);

  myList.push_back(20);

  myList.push_back(30);

  list<int>::iterator it;

  for (it = myList.begin(); it != myList.end(); it++)

  {

    cout << *it << " ";

  }

  return 0;

}

在上面的代码中,我们先创建了一个list myList,并向其中添加了三个元素10、20、30。然后,定义了一个迭代器it,将it初始化为myList的begin(),也就是指向第一个元素10。在遍历时,从it开始,一直到myList的end(),也就是指向最后一个元素的下一个位置,每次移动迭代器it,并输出当前位置的元素。注意,要使用*it来获取当前元素的值。

上面的代码也可以使用auto关键字简化,代码如下:


#include<iostream>

#include<list>

using namespace std;

int main()

{

  list<int> myList;

  myList.push_back(10);

  myList.push_back(20);

  myList.push_back(30);

  for (auto it = myList.begin(); it != myList.end(); it++)

  {

    cout << *it << " ";

  }

  return 0;

}

除了正序遍历外,也可以倒序遍历list。倒序遍历时,需要使用rbegin()和rend()函数,它们分别指向最后一个元素的位置和第一个元素的前一个位置。倒序遍历的代码如下:


#include<iostream>

#include<list>

using namespace std;

int main()

{

  list<int> myList;

  myList.push_back(10);

  myList.push_back(20);

  myList.push_back(30);

  for (auto it = myList.rbegin(); it != myList.rend(); it++)

  {

    cout << *it << " ";

  }

  return 0;

}

总之,在C++中遍历list是一项基本的操作,需要熟练掌握。使用迭代器或auto关键字可以方便地访问每个元素。除了正序遍历外,也可以倒序遍历list。

  
  

评论区

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