前言
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