目录
1.定义
2.基本函数
2.1.构造函数
2.2.添加元素
2.3.删除元素
2.4.list重要的迭代器
2.5.list其他函数
3.list使用实例
list是C++ stl中的部分内容,本质上list容器就是一个双向链表,可以高效的插入删除元素。使用的时候需要添加头文件#include
注意在list中不可以使用下表访问,list中间的元素不可以随意访问
#include
#include
#include
void main(){
std::list a1{ 1, 3, 5 }, a2{ 2, 4, 6 };
a1.merge(a2);
std::list::iterator it;
std::cout << "a1.merge(a2):";
for (it = a1.begin(); it != a1.end(); it++){
std::cout << *it << " ";
}
std::cout << std::endl;
}
也可以将有序定为自己想用的
#include
#include
#include
void main(){
std::list a1{ 5, 3, 1 }, a2{ 6, 4, 2 };
a1.merge(a1, [](int n1, int n2){return n1>n2; });
std::list::iterator it;
std::cout << "a1.merge(a2):";
for (it = a1.begin(); it != a1.end(); it++){
std::cout << *it << " ";
}
std::cout << std::endl;
}
#include
#include
#include
void main(){
std::list a1{ 5, 3, 1 }, a2{ 6, 4, 2 };
std::list::iterator it;
a1.splice(a1.begin(),a2);
std::cout << "a1.splice(a1.begin(),a2):";
for (it = a1.begin(); it != a1.end(); it++){
std::cout << *it << " ";
}
std::cout << std::endl;
}
a1.splice(a1.begin(), a2, a2.begin())——将a2的begin()位置的元素连接到a1的begin()位置,并且在a2中施放掉begin()位置的元素
#include
#include
#include
void main(){
std::list a1{ 5, 3, 1 }, a2{ 6, 4, 2 };
std::list::iterator it;
a1.splice(a1.begin(), a2, a2.begin());
std::cout << "a1.splice(a1.begin(),a2):";
for (it = a1.begin(); it != a1.end(); it++){
std::cout << *it << " ";
}
std::cout << std::endl;
}
#include
#include
#include
void main(){
std::list a1{ 1, 2, 3, 4, 5 };
a1.remove(3);
std::list::iterator it;
std::cout << "remove():";
for (it = a1.begin(); it != a1.end(); it++){
std::cout << *it << " ";
}
std::cout << std::endl;
}
也可以自定义删除元素的范围
#include
#include
#include
void main(){
std::list a1{ 1, 2, 3, 4, 5 };
a1.remove_if([](int n){return n<3; });
std::list::iterator it;
std::cout << "remove():";
for (it = a1.begin(); it != a1.end(); it++){
std::cout << *it << " ";
}
std::cout << std::endl;
}