vector
vecter与array相似。两者唯一的差别在于空间的运用的灵活性。 array是静态的,vecter是动态的。
操作
- 定义:
vector<int> iv(2,9);定义一个vector,里面有两个元素2、9。 empty(): 空则返回ture,不空则返回false。size(): 返回容器元素个数。push_back(x): 将元素x插入尾部。pop_back(): 将尾端元素弹出,但是不能访问,该函数返回void。front(): 查看第一个元素。back(): 查看最后一个元素。erase(iterator position): 清除某位置上的元素。insert(position,n,x): 在position之前插入n个x。
list
list不是连续空间不能像vector一样用[]。
操作
- 定义:
list<int> ilist;定义一个存放正数类型的链表。 empty(): 空则返回ture,不空则返回false。size(): 返回容器元素个数。front(): 查看第一个元素。back(): 查看最后一个元素。push_back(x): 将元素x插入尾部。pop_back(): 将尾端元素弹出,但是不能访问,该函数返回void。push_front(x): 将元素x插入头部。pop_front(): 将头部元素弹出,但是不能访问,该函数返回void。insert(position,x): 在position之前插入x。remove(x): 在x的元素全部移除。unique(x): 移除数值相同的连续元素。
deque
deque是一种双向开口的连续线性空间。
操作
- 定义:
deque<int> ideq(20,9);定义一个deque,里面有20个9; empty(): 空则返回ture,不空则返回false。size(): 返回容器元素个数。front(): 查看第一个元素。back(): 查看最后一个元素。push_back(x): 将元素x插入尾部。pop_back(): 将尾端元素弹出,但是不能访问,该函数返回void。push_front(x): 将元素x插入头部。pop_front(): 将头部元素弹出,但是不能访问,该函数返回void。erase(iterator position): 清除某位置上的元素。insert(position,x): 在position之前插入x。
stack
stack是一种先入后出的容器,底层有一个deque,底层也可以用 list实现。
操作
- 定义:
stack<int> istack;定义一个存放int的stack。 empty(): 空则返回ture,不空则返回false。size(): 返回容器元素个数。top(): 返回栈顶的元素。pop(): 弹出一个元素。push(x): 压入一个元素。
slist
slist是一个双向链表。操作和list相同。
set
set特性是,所有元素都会根据元素的键值自动被排序。set的元素不允许两个元素有相同的键值。底层是一个RB_tree。
操作
- 定义:
set<int> iset(ia,ia+5);``ia是一个数组。 empty(): 空则返回ture,不空则返回false。size(): 返回容器元素个数。count(x): 返回容器中,x元素的个数。insert(x): 插入元素x。
map
map中所有的元素会根据键值排序,且所有元素都是pair,pair第一元素被视为键值,第二元素被视为实值。可以改变实值,但不可以改变键值。
操作
- 定义:
map<string, int> simap{
{"jjhou",1},
{"jehou",1},
{"jahou",1},
}; //以string为键值,以int为实值。
pair<string, int> value(string("david"),5);
-insert(value): 插入pair value。
simap[a]: 取键值为a的值。
multset
用法与set完全相同,唯一差别在于它允许键值重复。
multmap
用法与map完全相同,唯一差别在于它允许键值重复。
unorder_map和unorder_set
用法与前面一样,只不过底层不是用rb_tree实现而是用hashtable实现。
priority_queue
构建一个队列,并按照给定准则对其排序。
- 定义:
priority_queue<Type,Container,Functional> empty(): 空则返回ture,不空则返回false。size(): 返回容器元素个数。top(): 查看第一个元素。push(x): 将元素x插入队列,并排序。pop(): 将头部元素弹出,但是不能访问,该函数返回void。emplace(x): 原地构造一个元素并插入队列。swap(): 交换内容