list
list:链表容器
底层数据结构: 双向的循环链表 pre data next
1、增加元素
list<int> mylist;
增加:
mylist.push_back(20); 从末尾添加元素 O(1)
mylist.push_front(20); 从首部添加元素 O(1) //vec.insert(vec.begin(), 20) O(n)
mylist.insert(it, 20); it指向的位置添加元素 O(1)
//链表中进行insert的时候,先要进行一个query查询操作
//对于链表来说,查询操作(要遍历)效率就比较慢了
2、删除元素
mylist.pop_back(); 从末尾删除元素 O(1)
mylist.pop_front(); 从首部删除元素 O(1)
mylist.erase(it); 从it指向的位置删除元素 O(1)
3、查询元素
查询搜索:
iterator(连续的insert和erase一定要考虑迭代器失效的问题)
deque和list,比vector容器多出来的增加删除函数接口: push_front
和pop_front