一.vector
1.a.push_back(x) //最后加一个元素
2.a.pop_back() // 删除最后一个元素
3.a.size() //长度
4.a.clear() //清空
5.a.insert(it,x) //往迭代器it处插入x
6.a.begin() //首部迭代器
7.a.end() //尾部迭代器
8.a.erase(it) //删除it迭代器处元素(不常用)
9.a.erase(first,last) //删除[first,last)内的元素,注意左闭右开(不常用)
10.a.front() //返回首元素
11.a.back() //返回最后一个元素
二.queue
1.a.push(x) //入队尾
2.a.pop() //出队头
3.a.front() // 返回队头元素
4.a.back() //返回队尾元素
5.a.size() // 返回个数
6.a.empty() //判空
三.priority_queue
函数与queue相同,好处就是可以自己定义其中数据的优先级,让优先级高的排在队列前面,优先出队
priority_queue<int,vector<int>,greater<int>> a // 小顶堆
priority_queue<int> a //大顶堆
结构体重载运算符
struct Rec
{
int a,b;
bool operator < (const Rec &t) const
{
return a<t.a;
}
}//大根堆要重载小于号
同理小根堆要重载大于号
1.a.top() //访问队头元素
2.a.push(x) //插入队列并排序
3.a.size() //返回队列内元素个数
4.a.pop() //弹出队头元素
5.a.empty() //判空
四.stack
1.skt.push(1); //向栈顶插入
2. stk.top(); //返回栈顶元素
3.stk.pop(); //删除栈顶元素
五.deque
a.begin();// 返回头部迭代器
a.front();//返回第一个元素
a.end(); // 返回最后迭代器
a.back(); //返回最后元素
a.push_back(1);//最后入队
a.push_front(2);//第一个入队
a.pop_back() //弹出最后元素
a.pop_front() //弹出第一个元素
a.clear();
六.set
1.a.begin() //返回第一个元素迭代器
2.a.clear() //清除所有元素
3.a.count(x) //返回个数0或1
4.a.empy() //判空
5.a.end() //返回最后一个元素的迭代器
6.a.size() //返回元素个数
7.++s.begin() --a.end(); //求前驱后继
8.a.insert(x) //插入x
9.a.find(x) //查找x返回x的迭代器不存在返回end
10.a.erase(x) //删除x
11.a.lower_bound(x) //找到大于等于x的元素中最小的一个
12.a.upper_bound(x) //找到大于x的元素中最小的一个
13.multiset//允许多个重复元素的平衡树操作同set
7.pair
1.pair<T1,T2> p1({...,...});
2,p1 = make_pair()
3,p1.first p1.second
8.map
map<string,vector<int>> a;
a.insert({"a",{}});
a["zhz"] = vector<int>({1,2,3,4});
cout<<a["zhz"].size()<<endl;
[]操作符
h[key] 返回key映射的value的引用,时间复杂度为O(logn)。
[]操作符是map最吸引人的地方。我们可以很方便地通过h[key]来得到key对应的value,还可以对h[key]进行赋值操作,改变key对应的value。
size/empty/clear/begin/end均与set类似。
Insert/erase
与set类似,但其参数均是pair<key_type, value_type>。