C++ 标准库类型 list
一、list 的使用与定义
1、使用 list 类型
- list 类型是双向链表,有迭代器
- 插入和删除的速度比较快,查询的速度慢
#include <list>
2、定义和初始化 list 对象
// 声明一个空的 list
list<int> l;
// 声名并初始化,4个元素值都为100
list<int> l1(4,100);
二、list 操作
1、list 类成员函数
assign(): 给list赋值
back(): 返回最后一个元素
begin(): 返回指向第一个元素的迭代器
clear(): 删除所有元素
empty(): 如果list是空的则返回true
end(): 返回末尾的迭代器
erase(): 删除一个元素
front(): 返回第一个元素
get_allocator(): 返回list的配置器
insert(): 插入一个元素到list中
max_size(): 返回list能容纳的最大元素数量
merge(): 合并两个list
pop_back(): 删除最后一个元素
pop_front(): 删除第一个元素
push_back(): 在list的末尾添加一个元素
push_front(): 在list的头部添加一个元素
rbegin(): 返回指向第一个元素的逆向迭代器
remove(): 从list删除元素
remove_if(): 按指定条件删除元素
rend(): 指向list末尾的逆向迭代器
resize(): 改变list的大小
reverse(): 把list的元素倒转
size(): 返回list中的元素个数
sort(): 给list排序
splice(): 合并两个list
swap(): 交换两个list
unique(): 删除list中重复的元素
2、实例
#include <iostream>
#include <list>
using namespace std;
// 创建一个链表对象,并赋值
list<int> l;
for (int i=1; i<=5; ++i)
l.push_back(i); // 1 2 3 4 5
// 在迭代器前面插入
it = l.begin();
++it;
l.insert (it,10,20); // 1 10 20 2 3 4 5
// 删除元素,
l.erase(it) // 删除迭代器元素,可以范围删除
l.remove(2) // 删除第一个该值的元素
// 从小到大升序排序
l.sort();
// 删除重复的元素
l.unique();
// 遍历链表
for (list<int>::iterator it=l.begin(); it != l.end(); ++it)
cout << *it << endl;
三、forward_list
1、使用 forward_list 类型
- forward_list 类型是单向链表,有迭代器
#include <forward_list>
// 声明一个空的 forward_list
forward_list <int> fl;
// 声名并初始化,4个元素值都为100
forward_list <int> fl1(4,100);
2、forward_list 的操作
- 和 list 类似,但是只有单向操作
- 没有关于 back 的成员函数:back(),pop_back(),push_back()都没有