C++中常见容器【STL】
/*
vector 变长数组 ,倍增思想
size()
empty()
clear()
front()/ back()
push_back()/ pop_back()
begin()/end()
[]
支持比较运算 按字典序
pair<int, int>
first 第一个元素
second 第二个元素
支持比较运算, 以first为第一关键字, second为第二关键字(字典序)
string 字符串
size() / length() 返回长度
empty()
clear()
substr(), c_str()
queue, 队列
push() 向队尾插入一个元素
front() 返回队头元素
back() 返回队尾元素
pop() 弹出队头元素
priority_queue 优先队列 默认是大根堆
push() 插入一个元素
top() 返回堆顶元素
pop() 弹出堆顶元素
stack 栈
push() 栈顶插入元素
top() 返回栈顶元素
pop() 弹出堆顶元素
deque 双端队列,队头队尾都可插入删除、且支持随机访问
加强版的vector
size()
empty()
clear()
front()
back()
push_back() / pop_back()
push_front() / pop_front()
begin() / end()
[]
set, map, multiset, multimap 基于平衡二叉树(红黑树)实现,动态维护有序序列
size()
empty()
clear()
set / multiset
insert() 插入一个数
find() 查找一个数
count() 返回某一个数的个数
erase()
(1)输入是一个数x,删除所有x
(2)输入是一个迭代器, 删除这个迭代器
lower_bound() /upper_bound()
lower_bound(x) 返回大于等于x的最小的数
upper_bound(x) 返回大于x的最小的数
map / multimap
insert() 插入的数是一个pair
erase() 输入的参数是pair或者迭代器
find()
[]
unordered_set, unordered_map, unordered_multiset, unordered_multimap 哈希表
和上面的类似 增删改查的时间复杂度是o(1)的
不支持lower_bound() / upper_bound()
bitset 压位
bitset<10000> s;
~, &, |, ^
>>, <<
==, !=
[]
count()返回有多少个1
any() 判断是否至少有一个1
none() 判断是否全为0
set(), 把所有位置换成1
set(k, v) 将第k位变成v
reset() 把所有位变成0
flip() 把所有位取反
flip(k) 把第k位取反
*/
#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
#include<vector>
#include <queue>
#include <map>
using namespace std;
int main()
{
map<string, int> a;
a["yxc"] = 1;
cout<< a["yxc"] <<endl;
return 0;
}