C++容器库(第四篇:list专项)
list链表
基础介绍
- 头文件:
#include<list>
- 初始化:
stack<int> a
- 相关用法:
使用 含义 a.front()
访问第一个元素 a.back()
访问最后一个元素 a.begin()
返回指向起始的迭代器 a.end()
返回指向末尾的迭代器 a.empty()
检查容器是否为空 a.size()
返回容纳的元素数 a.clear();
清除内容 a.insert(迭代器,插入个数,元素);
插入元素 a.erase(迭代器)
删除元素 a.push_back(元素)
尾插 a.pop_back();
除末元素 a.push_front(元素)
头插 a.pop_front();
移除首元素 a.swap(b);
交换内容 a.unique();
去重复 a.sort();
排序
使用方法
#include<iostream>
#include<list>
using namespace std;
int main(){
/************************1、四种初始化******************************/
//1.1、初始化空链表
list<string> list1;
//1.2、初始化 “6” 个 “悟解不误解”
list<string> list2(6,"悟解");
//1.3、将 list2的内容做为初始化内容
list<string> list3(list2);
//1.4、将 list2的内容做为初始化内容
list<string> list4( list2.begin() , list2.end() );
/************************************************************/
//首先拿到要插入的位置
auto index = list4.begin();
//可以理解为此时指向的是第二个元素之后的位置
for(int i=0;i<2;i++) index++;
/**************************2、插入**********************************/
/* 2、插入 (这里重点给出 insert的插入方法,头插和尾插见上表)*/
//2.1、一次插入一个元素
list4.insert(index , "插入一个");
//2.2、一次插入n个元素
//注意:由于刚刚插入了一个元素,此时index指向的是元素之后的位置
list4.insert(index ,3, "插入多个");
//2.3、一次插入一个链表
list4.insert(index , list2.begin() , list2.end());
/*************************3、删除******************************/
/* 3、删除 (这里重点给出 erase 的插入方法,头插和尾插见上表)*/
//3.1、一次删除一个
//注意:删除之后index就为空了,测试时要记得处理
list4.erase(index);
//3.2、一次删除n个
//注意:由于刚刚插入了list2,这里删除之后实际上list2的元素还在
list4.erase(index,list4.end());
/************************************************************/
for(auto i: list4) cout<<i<<" "; //输出结果如下,大家可以分步打印一下理解这个过程
}
输出结果如下(注意3.1处的注意事项):
悟解 悟解 插入一个 插入多个 插入多个 插入多个 悟解 悟解 悟解 悟解 悟解 悟解