【C++】STL中list的使用
前言:在前面学习的 过程中我们学习了STL中的string,vector,今天我们来进一步的学习STL中的list的使用方法。
💖 博主CSDN主页:卫卫卫的个人主页 💞
👉 专栏分类:高质量C++学习 👈
💯代码仓库:卫卫周大胖的学习日记💫
💪关注博主和博主一起学习!一起努力!
目录标题
- List常见的使用方法
- 什么是list
- List的常见构造方式
- list中迭代器的使用
- list的增删改查
- list访问和修改元素
- 元素的数量和清空list
- 对list进行升序排序
- 反转list中的元素的顺序
- 删除list中所有等于给定值的元素
List常见的使用方法
什么是list
在C++中,list是一个双向链表容器(带头双向链表如下所示)。它是C++标准库中的一种容器类型,可以用来存储和管理数据。list的特点是可以高效地执行插入和删除操作,但是在访问和搜索元素方面相对较慢。
list的元素类型可以是任意类型,包括基本数据类型和自定义的对象类型。list容器提供了一系列的成员函数和操作符,可以用于在链表中插入、删除和访问元素,以及对链表进行遍历和操作。
通过使用list容器,可以方便地实现一些功能,如实现队列或栈、排序和合并链表等。由于其特殊的数据结构,list在某些场景下比其他容器类型更适用,例如需要高效地在容器中插入和删除元素,而对访问元素的速度要求较低的情况。
List的常见构造方式
在C++中,list可以通过多种方式进行构造。以下是几种常见的构造方式:
-
默认构造函数:创建一个空的list对象。
std::list myList; // 创建一个空的list对象
-
带有初始化列表的构造函数:使用初始化列表创建一个list对象,并将其中的元素添加到list中。
std::list myList = {1, 2, 3}; // 使用初始化列表创建list对象并添加元素 -
带有指定元素个数和初始值的构造函数:创建一个包含指定元素个数和初始值的list对象。
std::list myList(5, 0); // 创建一个包含5个初始值为0的元素的list对象
-
通过迭代器范围构造函数:创建一个list对象,并将指定范围内的元素添加到list中。
std::vector vec = {1, 2, 3}; std::list myList(vec.begin(), vec.end()); // 通过迭代器范围创建一个list对象,并将vec中的元素添加到list中 -
拷贝构造函数:使用另一个list对象创建一个新的list对象,两个list对象共享元素。
std::list myList1 = {1, 2, 3}; std::list myList2(myList1); // 使用myList1创建一个新的list对象myList2,两个list对象共享元素
这些是一些常见的list构造方式,可以根据实际需求选择合适的方式来构造list对象。
list中迭代器的使用
在C++中,可以使用list的iterator来访问和操作list容器中的元素。以下是一些常见的list iterator的使用方法。
- 声明和初始化iterator
std::list mylist = { 1,2,3,4,5 }; std::list::iterator it = mylist.begin();//获取指向list第一个元素的迭代器 std::list::iterator end = mylist.end(); // 获取指向list尾部的迭代器- 迭代器遍历list
int main() { std::list mylist = { 1,2,3,4,5 }; std::list::iterator it = mylist.begin();//获取指向list第一个元素的迭代器 std::list::iterator end = mylist.end(); // 获取指向list尾部的迭代器 while (it != end) { std::cout std::list 1,2,3,4,5 }; std::list if (*it != 5)//通过迭代器修改元素的值 { *it = 5; } std::cout list 1,3,4,5 }; list cout list 10,20,0,-1,9,20,30 }; lt.sort(); list cout list 10,20,0,-1,9,20,30 }; lt.sort(); list cout cout list 10,10,20,30,10}; lt.remove(10);//删除所有为10的元素 list cout -


