C++之std::list<string>::iterator迭代器应用实例(一百七十九)

简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长!

优质专栏:Audio工程师进阶系列原创干货持续更新中......】🚀

人生格言: 人生从来没有捷径,只有行动才是治疗恐惧和懒惰的唯一良药.
更多原创,欢迎关注:Android系统攻城狮

1.前言

本篇目的:C++之std::list::iterator迭代器应用实例。
List迭代器介绍

在C++中,list是一个双向链表容器,可以用来存储和操作一系列的元素。迭代器是一种用于遍历容器的对象,它提供了对容器中元素的访问和操作。

对于list容器,有两种类型的迭代器可用:iteratorconst_iterator。它们的功能相似,但 iterator 可以用于修改容器中的元素,而 const_iterator 则只能用于读取元素,不能修改。

使用迭代器可以按照顺序访问链表中的元素,并进行增加、删除和修改操作。以下是一些常用的迭代器操作:

  • begin():返回指向链表第一个元素的迭代器。
  • end():返回指向链表末尾(最后一个元素之后)的迭代器。
  • rbegin():返回指向链表末尾的逆向迭代器(指向最后一个元素)。
  • rend():返回指向链表开头的逆向迭代器(指向第一个元素之前的位置)。
  • ++:将迭代器向后移动一个位置。
  • --:将迭代器向前移动一个位置。
  • *:返回当前迭代器指向的元素的引用。

2.应用实例

v1.0

cpp 复制代码
#include <iostream>
#include <list>
#include <string>

typedef std::list<std::string>::iterator StringListIterator;

int main() {
    std::list<std::string> names{"Alice", "Bob", "Charlie"};

    StringListIterator iter = names.begin();

    while (iter != names.end()) {
        std::cout << *iter << std::endl;
        ++iter;
    }

    return 0;
}

v2.0

cpp 复制代码
#include <iostream>
#include <list>

int main() {
    // 创建一个list并初始化一些值
    std::list<int> myList;
    myList.push_back(10);
    myList.push_back(20);
    myList.push_back(30);
    myList.push_back(40);
    myList.push_back(50);

    // 使用iterator迭代器遍历list
    std::list<int>::iterator iter;
    for (iter = myList.begin(); iter != myList.end(); ++iter) {
        std::cout << *iter << " ";
    }

    return 0;
}
相关推荐
Luna-player1 分钟前
在前端中,<a> 标签的 href=“javascript:;“ 这个是什么意思
开发语言·前端·javascript
小草cys15 分钟前
项目7-七彩天气app任务7.4.2“关于”弹窗
开发语言·前端·javascript
小鸡吃米…26 分钟前
Python PyQt6教程三-菜单与工具栏
开发语言·python
aini_lovee36 分钟前
寻找 MAC 协议的 MATLAB 仿真
开发语言·macos·matlab
獭.獭.1 小时前
C++ -- STL【unordered_set和unordered_map的使用】
c++·stl·unordered_map·unordered_set
Jelena157795857921 小时前
Java爬虫淘宝拍立淘item_search_img拍接口示例代码
开发语言·python
郝学胜-神的一滴1 小时前
Python数据模型:深入解析及其对Python生态的影响
开发语言·网络·python·程序人生·性能优化
一水鉴天1 小时前
整体设计 定稿 之26 重构和改造现有程序结构 之2 (codebuddy)
开发语言·人工智能·重构·架构
star _chen2 小时前
C++ std::move()详解:从小白到高手
开发语言·c++
lzhdim2 小时前
C#开发者必知的100个黑科技(前50)!从主构造函数到源生成器全面掌握
开发语言·科技·c#