c++中的链表list
前言
c++
里面的list
容器,真的是链表实现,中间元素的插入和删除是
O
(
1
)
O(1)
O(1) 时间复杂度的。有必要了解一下它的基本用法。
代码
#include <list>
#include <iostream>
using namespace std;
int main()
{
list<int> lst{1,3,4,2};
auto it = lst.begin();
it++;
// 插入元素
lst.insert(it, {20,30,40}); // 插入到第2个位置
for(auto item : lst) cout << item << " "; cout << endl; /*[ 1 20 30 40 3 4 2 ]*/
// 按位置删除元素
it = lst.begin();
advance(it, 1); // 删除第2个元素
lst.erase(it);
for(auto item : lst) cout << item << " "; cout << endl; /*[ 1 30 40 3 4 2 ]*/
// 按值删除元素
lst.remove(2); // 删除所有为2的元素
for(auto item : lst) cout << item << " "; cout << endl; /*[ 1 30 40 3 4 ]*/
return 0;
}
结果
1 20 30 40 3 4 2
1 30 40 3 4 2
1 30 40 3 4