C++ 常见数据结构(STL)
C++ 常见数据结构(STL)
文章目录
- C++ 常见数据结构(STL)
-
- Vector
- Stack
- Queue
- Hash map
Vector
头文件vector
操作 | 作用 |
---|---|
vector vec | 创建向量vec |
vec.push_back(a) | 在向量vec的尾部插入元素a |
vec[i] | 访问第i个元素 |
vec.insert(vec.begin()+i,a) | 在第i个元素后面插入a |
vec,eresa(vec.begin()+i) | 删除第i个元素 |
vec.erase(vec.begin()+i,vec.end()+j) | 删除区间[i,j-1];区间从0开始 |
vec.size() | 返回向量大小 |
vec.clear() | 清空所有向量 |
Stack
头文件stack
操作 | 作用 |
---|---|
stack s | 创建栈s |
s.push(x) | 将 x 入栈 |
s.top() | 获得栈顶元素 |
s.pop() | 弹出栈顶元素 |
s.empty() | 检测 stack 内是否为空 |
s.size() | 返回 stack 内元素的个数 |
Queue
头文件queue
操作 | 作用 |
---|---|
queueq | 创建栈q |
q.push(x) | 将x放入 queue 内 |
q.pop() | 从 queue 中移除一个元素 |
q.front() | 返回 queue 内的下一个元素 |
q.back() | 返回 queue 内的最后一个元素 |
q.empty() | 检测 queue 内是否为空 |
q.size() | 返回 stack 内元素的个数 |
Hash map
头文件unordered_map
其中hashmap是无序的,其中对于获得hashmap中的一组元素时候,可以用一下代码段来访问
for (auto& x: hashmap)std::cout << x.first << ": " << x.second << std::endl;
操作 | 作用 |
---|---|
unordered_map<int, int>hashmap | 建立Hashmap |
hashmap.find(x) | 获得一个元素为x的迭代器 |
hashmap.insert(pair(int,int)(key ,value) ) | 插入一组元素key:value |
hashmap.erase(x) | 删除关于x的迭代器 |
hashmap.empty() | 检测 hashmap 内是否为空 |
hashmap.size() | 返回 hashmap 内元素的个数 |
hashmap.clear() | 清空hashmap中的所有元素 |