C++之list成员函数应用总结(二百三十七)

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

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

人生格言: 人生从来没有捷径,只有行动才是治疗恐惧和懒惰的唯一良药.

更多原创,欢迎关注:Android系统攻城狮

欢迎关注Android系统攻城狮

1.前言

本篇目的:理解C++之list成员函数应用。

2.list成员函数介绍

C++中的std::list是一个双向链表的容器,它提供了许多成员函数用于对链表进行操作。以下是一些常用的std::list成员函数的列表:

  • 构造函数:

    • list():默认构造函数。
    • list(const list& other):拷贝构造函数。
    • list(size_type count, const T& value):构造函数,创建包含count个值为value的元素的链表。
  • 迭代器(Iterator)相关函数:

    • begin():返回指向链表第一个元素的迭代器。
    • end():返回指向链表尾后位置的迭代器。
    • rbegin():返回指向链表最后一个元素的逆向迭代器。
    • rend():返回指向链表首元素前位置的逆向迭代器。
  • 容量相关函数:

    • empty():检查链表是否为空。
    • size():返回链表中元素的数量。
    • max_size():返回链表所允许的最大元素数量。
  • 元素访问与修改相关函数:

    • front():返回链表的第一个元素的引用。
    • back():返回链表的最后一个元素的引用。
    • push_back(const T& value):将元素加入链表尾部。
    • push_front(const T& value):将元素加入链表头部。
    • pop_back():删除链表尾部的元素。
    • pop_front():删除链表头部的元素。
  • 修改容器相关函数:

    • clear():清空链表中的所有元素。
    • erase(iterator position):删除指定位置处的元素。
    • erase(iterator first, iterator last):删除[first, last)范围内的元素。
    • insert(iterator position, const T& value):在指定位置之前插入元素。

3.应用实例

1. begin()end() 函数:

#include <iostream>
#include <list>int main() {std::list<int> myList = {1, 2, 3, 4, 5};// 使用 begin() 函数获取列表的第一个元素的迭代器std::list<int>::iterator iterStart = myList.begin();// 使用 end() 函数获取列表的最后一个元素的迭代器std::list<int>::iterator iterEnd = myList.end();// 遍历列表for (std::list<int>::iterator iter = iterStart; iter != iterEnd; ++iter) {std::cout << *iter << " ";}return 0;
}

2. rbegin()rend() 函数:

#include <iostream>
#include <list>int main() {std::list<int> myList = {1, 2, 3, 4, 5};// 使用 rbegin() 函数获取列表的最后一个元素的反向迭代器std::list<int>::reverse_iterator iterStart = myList.rbegin();// 使用 rend() 函数获取列表的第一个元素的反向迭代器std::list<int>::reverse_iterator iterEnd = myList.rend();// 遍历列表for (std::list<int>::reverse_iterator iter = iterStart; iter != iterEnd; ++iter) {std::cout << *iter << " ";}return 0;
}

3. empty() 函数:

#include <iostream>
#include <list>int main() {std::list<int> myList = {1, 2, 3, 4, 5};// 使用 empty() 函数判断列表是否为空if (myList.empty()) {std::cout << "List is empty" << std::endl;} else {std::cout << "List is not empty" << std::endl;}return 0;
}

4. size() 函数:

#include <iostream>
#include <list>int main() {std::list<int> myList = {1, 2, 3, 4, 5};// 使用 size() 函数获取列表的元素个数std::cout << "Size of list: " << myList.size() << std::endl;return 0;
}

5. max_size() 函数:

#include <iostream>
#include <list>int main() {std::list<int> myList = {1, 2, 3, 4, 5};// 使用 max_size() 函数获取列表的最大容量std::cout << "Max size of list: " << myList.max_size() << std::endl;return 0;
}

6. front() 函数:

#include <iostream>
#include <list>int main() {std::list<int> myList = {1, 2, 3, 4, 5};// 使用 front() 函数获取列表的第一个元素int firstElement = myList.front();std::cout << "First element of list: " << firstElement << std::endl;return 0;
}

7. back() 函数:

#include <iostream>
#include <list>int main() {std::list<int> myList = {1, 2, 3, 4, 5};// 使用 back() 函数获取列表的最后一个元素int lastElement = myList.back();std::cout << "Last element of list: " << lastElement << std::endl;return 0;
}

8. push_back() 函数:

#include <iostream>
#include <list>int main() {std::list<int> myList = {1, 2, 3, 4, 5};// 使用 push_back() 函数在列表末尾插入元素myList.push_back(6);// 输出列表中的元素for (int num : myList) {std::cout << num << " ";}return 0;
}

9. push_front() 函数:

#include <iostream>
#include <list>int main() {std::list<int> myList = {1, 2, 3, 4, 5};// 使用 push_front() 函数在列表开头插入元素myList.push_front(0);// 输出列表中的元素for (int num : myList) {std::cout << num << " ";}return 0;
}

10. pop_back() 函数:

#include <iostream>
#include <list>int main() {std::list<int> myList = {1, 2, 3, 4, 5};// 使用 pop_back() 函数删除列表末尾的元素myList.pop_back();// 输出列表中的元素for (int num : myList) {std::cout << num << " ";}return 0;
}

11. pop_front() 函数:

#include <iostream>
#include <list>int main() {std::list<int> myList = {1, 2, 3, 4, 5};// 使用 pop_front() 函数删除列表开头的元素myList.pop_front();// 输出列表中的元素for (int num : myList) {std::cout << num << " ";}return 0;
}

12. clear() 函数:

#include <iostream>
#include <list>int main() {std::list<int> myList = {1, 2, 3, 4, 5};// 使用 clear() 函数清空列表myList.clear();// 输出列表中的元素(为空)for (int num : myList) {std::cout << num << " ";}return 0;
}

13. erase() 函数:

#include <iostream>
#include <list>int main() {std::list<int> myList = {1, 2, 3, 4, 5};// 使用 erase() 函数删除列表中的指定元素std::list<int>::iterator iter = myList.erase(myList.begin()); // 删除第一个元素// 输出列表中的元素for (int num : myList) {std::cout << num << " ";}return 0;
}

14. insert() 函数:

#include <iostream>
#include <list>int main() {std::list<int> myList = {1, 2, 3, 4, 5};// 使用 insert() 函数在指定位置插入元素std::list<int>::iterator iter = myList.insert(myList.begin(), 0); // 在第一个元素前插入0// 输出列表中的元素for (int num : myList) {std::cout << num << " ";}return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/89971.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

数据库管理-第108期 因Exadata存储节点操作系统空间异常的紧急处理(20230928)

数据库管理-第108期 因Exadata存储节点操作系统空间异常的紧急处理&#xff08;20230928&#xff09; 众所周知&#xff0c;明天放假了&#xff0c;本着对客户数据库软硬件负责任的态度&#xff0c;进行了一次深入彻底的软硬件巡检&#xff08;就是检查包括计算节点、存储节点…

PyTorch - Dataset 迭代数据接口 __getitem__ 异常处理

欢迎关注我的CSDN&#xff1a;https://spike.blog.csdn.net/ 本文地址&#xff1a;https://spike.blog.csdn.net/article/details/133378772 在模型训练的过程中&#xff0c;加载数据部分&#xff0c;极其容易出现异常&#xff0c;以及不可控的因素&#xff0c;需要通过异常捕获…

k8s1.19使用ceph14

一、静态 pv &#xff08;rbd&#xff09;方式 1、所有k8s节点安装依赖组件 注意&#xff1a;安装ceph-common软件包推荐使用软件包源与Ceph集群源相同&#xff0c;软件版本一致。 cat > /etc/yum.repos.d/ceph.repo << EOF [ceph] nameceph baseurlhttp://mirrors…

【网络协议】TCP报文格式

1.源端口和目的端口 源端口字段占16比特&#xff0c;用来写入源端口号。源端口号用来标识发送该TCP报文段的应用进程。 目的端口字段占16比特&#xff0c;用来写入目的端口号。目的端口号用来标识接收该TCP报文段的应用进程。 2.序号 当序号增加到最后一个时&#xff0c;下…

封装JDBC,实现简单ORM框架

本文将封装JDBC的操作&#xff0c;实现简单的ORM框架&#xff0c;提供3种风格的api来给用户使用&#xff08;1.原生jdbcSqlBuilder&#xff1b;2.类似jpa和mp的&#xff1b;3.注解接口方法&#xff09; 代码仓库&#xff1a;malred/IFullORM 1. 原生JDBCsql构建器 第一步&…

26551-2011 畜牧机械 粗饲料切碎机

声明 本文是学习GB-T 26551-2011 畜牧机械 粗饲料切碎机. 而整理的学习笔记,分享出来希望更多人受益,如果存在侵权请及时联系我们 1 范围 本标准规定了粗饲料切碎机的产品型号、技术要求、试验方法、检验规则、标志、包装、运输与贮存。 本标准适用于加工农作物秸秆等粗饲料…

Docker(一)、linux环境安装Docker

linux环境安装Docker 1、自动下载安装&#xff1a;2、指定yum的安装源3、安装docker社区版4、启动docker5、验证6、demo:从国外自动抽取下载hello-world镜像&#xff0c;并启动6、卸载docker7、安装的时候&#xff0c;会出现Error: Failed to download metadata for repo base:…

Python 3.10.9 Mac m1 无法安装grpc的解决办法

pip install airavata-mft-cli python3.10 -m venv venv source venv/bin/activate pip install grpcio1.47.0rc1 pip install grpcio-tools1.47.0rc1 然后就成了 python -m grpc_tools.protoc -I --python_out. --grpc_python_out. message.proto 参考文章&#xff1a; …

Mysql生产随笔

目录 1. Mysql批量Kill删除processlist 1.1查看进程、拼接、导出、执行 1.2常见错误解决方案 2.关于时区 3.内存占用优化 记录一下生产过程中的一些场景和命令使用方法&#xff0c;不定期进行更新 1. Mysql批量Kill删除processlist 1.1查看进程、拼接、导出、执行 sho…

【AIPOD案例操作教程】斜流风扇轮毂优化

AIPOD是由天洑软件自主研发的一款通用的智能优化设计软件&#xff0c;致力于解决能耗更少、成本更低、重量更轻、散热更好、速度更快等目标的工程设计寻优问题。针对工业设计领域的自动化程度低、数值模拟计算成本高等痛点&#xff0c;基于人工智能技术、自研先进的智能代理学习…

Tableau/Power BI 是什么

目录 1. Tableau 是什么?1.1. Tableau 组件1.2. Tableau 的优劣势 2. Power BI2.1. Power BI 的组成部分2.2. Power BI 概念2.2.1. 容量2.2.2. 工作区2.2.3. 数据集2.2.4. 共享数据集2.2.5. 报表2.2.6. 仪表板2.2.7. 模板应用 1. Tableau 是什么? Tableau 是 Tableau 公司推…

前端架构师之01_ES6_基础

1 初识ES6 简单来说&#xff0c;ECMAScript是JavaScript语言的国际标准&#xff0c;JavaScript是实现ECMAScript标准的脚本语言。 2011年&#xff0c;ECMA国际标准化组织在发布ECMAScript 5.1版本之后&#xff0c;就开始着手制定第6版规范。 存在的问题&#xff1a;这个版本…

linux部署页面内容

/bin&#xff1a;该目录包含了常用的二进制可执行文件&#xff0c;如ls、cp、mv、rm等等。 /boot&#xff1a;该目录包含了启动Linux系统所需的文件&#xff0c;如内核文件和引导加载程序。 /dev&#xff1a;该目录包含了所有设备文件&#xff0c;如硬盘、光驱、鼠标、键盘等等…

新手十分钟也能完成的Unity小游戏打砖块

由Siki学院打砖块游戏启发完成一个非常非常简单&#xff0c;纯新手也能十分钟做出来的小游戏——打砖块。 一.搭建场景 首先我们先在一个空白的3D项目中创建一个Plane平面&#xff0c;将其放置于世界中央位置&#xff0c;长宽设置为2&#xff0c;并为其添加一个材质Material&am…

二十,镜面IBL--打印BRDF积分贴图

比起以往&#xff0c;这节应该是最轻松的了&#xff0c; 运行结果如下 代码如下&#xff1a; #include <osg/TextureCubeMap> #include <osg/TexGen> #include <osg/TexEnvCombine> #include <osgUtil/ReflectionMapGenerator> #include <osgDB/Re…

挂件板死机刷固件

用ESP32-DevKitC_V4刷固件的工具flash_download_tool_3.9.5.exe 挂件板子端口接线依次为V&#xff08;接3V3&#xff09;、R&#xff08;接TXD&#xff09;、T&#xff08;接RXD&#xff09;、G&#xff08;接GND&#xff09;、L&#xff08;悬空&#xff09; 1.选择ESP8266&…

Redis hash 命令总结

redis hash命令总结 命令 描述 示例 注意 HSET HSET用于将散列表key中的field的值设置为value。 HSET key field value 返回值&#xff1a;如果散列表key中的field不存在并且设置成功&#xff0c;则返回1&#xff1b;如果散列表key中的field已经存在并且新值覆盖了旧值&…

关于TUM数据集

2、验证回环检测算法&#xff0c;需要有人工标记回环的数据集。然而人工标记回环是很不方便的&#xff0c;我们会考虑根据标准轨迹计算回环。即&#xff0c;如果轨迹中有两个帧的位姿非常相近&#xff0c;就认为它们是回环。请根据TUM数据集给出的标准轨迹&#xff0c;计算出一…

MySQL学习笔记19

MySQL日志文件&#xff1a;MySQL中我们需要了解哪些日志&#xff1f; 常见日志文件&#xff1a; 我们需要掌握错误日志、二进制日志、中继日志、慢查询日志。 错误日志&#xff1a; 作用&#xff1a;存放数据库的启动、停止和运行时的错误信息。 场景&#xff1a;用于数据库的…

BACnet/IP协议采集网关支持modbus RTU采集

楼宇自动化在现代建筑中扮演着重要的角色&#xff0c;它可以集成和控制各种设备和系统&#xff0c;提高建筑的能效和舒适性。然而&#xff0c;不同的设备和系统通常使用不同的通信协议&#xff0c;这给楼宇自动化的实施带来了一定的挑战。为了解决这个问题&#xff0c;BACnet和…