21xrx.com
2024-09-20 06:10:44 Friday
登录
文章检索 我的文章 写文章
详解C++中list的使用方法
2023-06-23 09:46:43 深夜i     --     --
C++ list 使用方法 详解

C++中list是一个标准库容器,能够存储任意类型的数据,并且支持许多常用的操作,如插入、删除、查找、排序等。list中的元素在内存中是以链表的形式存储的,因此能够快速进行插入和删除操作,但是访问元素时需要遍历整个链表,效率较低。

创建list对象的语法如下:


#include <list>

using namespace std;

list<int> mylist; // 创建一个空的list对象

list中包含了许多方便的成员函数,例如push_front、push_back、pop_front、pop_back、insert、erase、clear等。下面详细介绍这些常用函数的使用方法。

1. push_front和push_back

push_front()用于在list头部插入一个元素,push_back()用于在list尾部插入一个元素。使用方法如下:


list<int> mylist;

mylist.push_front(1); // 在list头部插入元素1

mylist.push_back(2); // 在list尾部插入元素2

2. pop_front和pop_back

pop_front()用于删除list头部的一个元素,pop_back()用于删除list尾部的一个元素。使用方法如下:


list<int> mylist;

mylist.push_back(1);

mylist.push_back(2);

mylist.pop_front(); // 删除list头部的元素1

mylist.pop_back(); // 删除list尾部的元素2

3. insert

insert()用于在list中插入一个元素,第一个参数是要插入的位置(一个迭代器),第二个参数是要插入的元素。使用方法如下:


list<int> mylist;

mylist.push_back(1);

mylist.push_back(3);

auto it = mylist.begin(); // 获取list头部的迭代器

mylist.insert(it, 2); // 在list头部插入元素2

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

  cout << *it << " ";

} // 输出:2 1 3

4. erase

erase()用于从list中删除一个或多个元素,第一个参数是要删除的元素的位置(一个迭代器),第二个参数是要删除的元素的后一个位置。也可以使用erase()一次删除多个元素,只需要在参数中指定要删除的范围即可。例如:


list<int> mylist;

mylist.push_back(1);

mylist.push_back(2);

mylist.push_back(3);

mylist.push_back(4);

auto it = mylist.begin();

it++; it++; // 获取list中第3个元素的位置

mylist.erase(it); // 删除第3个元素

mylist.erase(mylist.begin(), mylist.end()); // 删除整个list

cout << "list size = " << mylist.size() << endl; // 输出:list size = 0

5. clear

clear()用于清空list中的所有元素,即使list的长度为0,也可以使用此函数清空。使用方法如下:


list<int> mylist;

mylist.push_back(1);

mylist.push_back(2);

mylist.push_back(3);

mylist.clear(); // 清空list

cout << "list size = " << mylist.size() << endl; // 输出:list size = 0

以上是list的一些常用方法,通过这些方法可以完成对list中元素的插入、删除和访问等操作。除了list,C++标准库中还有vector、deque和array等容器可供使用,每种容器都有其特点和适用范围,具体使用需要根据实际情况进行选择。

  
  

评论区

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