> 文章列表 > C++ 常见数据结构(STL)

C++ 常见数据结构(STL)

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中的所有元素