C++STL库常用数据结构用法整理

C++ 
vector
  • 创建对象,vector<int> vec;
  • 尾部插入数字,vec.push_back(a);
  • 使用下表访问元素
  • 使用迭代器访问元素
  • 插入元素
  • 删除最后一个元素,vec.pop_back()

queue
  • 定义一个queue的变量 queue<Type> M
  • 查看是否为空范例  M.empty()
  • 从已有元素后面增加元素 M.push()
  • 输出现有元素的个数 M.size()
  • 显示第一个元素 M.front()
  • 显示最后一个元素 M.back()
  • 弹出队列的第一个元素 M.pop()

stack
  • 返回栈的元素数size()
  • 返回栈顶的元素 top()
  • 从栈中去除并删除元素 pop()
  • 向栈中添加元素x push(x)
  • 在栈为空时返回true empty()

map
map遍历
basic
for(iter = str2vec.begin(); iter != str2vec.end(); iter++)
        {output.push_back(iter->second);}   
faster
for(auto& p: str2vec){
  output.push_back(p.second);
}
  

list
list是双向链表,与向量相比,它允许快读的插入和删除,但是随机访问比较慢
Lst1.assign() 给list赋值 
Lst1.back() 返回最后一个元素 
Lst1.begin() 返回指向第一个元素的迭代器 
Lst1.clear() 删除所有元素 
Lst1.empty() 如果list是空的则返回true 
Lst1.end() 返回末尾的迭代器 
Lst1.erase() 删除一个元素 
Lst1.front() 返回第一个元素 
Lst1.get_allocator() 返回list的配置器 
Lst1.insert() 插入一个元素到list中 
Lst1.max_size() 返回list能容纳的最大元素数量 
Lst1.merge() 合并两个list 
Lst1.pop_back() 删除最后一个元素 
Lst1.pop_front() 删除第一个元素 
Lst1.push_back() 在list的末尾添加一个元素 
Lst1.push_front() 在list的头部添加一个元素 
Lst1.rbegin() 返回指向第一个元素的逆向迭代器 
Lst1.remove() 从list删除元素 
Lst1.remove_if() 按指定条件删除元素 
Lst1.rend() 指向list末尾的逆向迭代器 
Lst1.resize() 改变list的大小 
Lst1.reverse() 把list的元素倒转 
Lst1.size() 返回list中的元素个数 
Lst1.sort() 给list排序 
Lst1.splice() 合并两个list 
Lst1.swap() 交换两个list 
Lst1.unique() 删除list中重复的元素


priority_queue
q.push()
q.pop()
q.top()

bitset
bitset的大小在编译时就需要确定
定义bitset,bitset<16> b;
b.size() 返回位数
b.count() 返回1的个数
b.any() 返回是否有1
b.none() 返回是否没有1
b.set() 全部变成1
b.set(i) 将i+1位变成1
b.set(i,x) 将i+1位变成x
b.reset() 全部都变成0
b.flip() 全部去翻
b.to_string() 转为string类型

unordered_map
1.find函数判断某键值是否存在
map.find(key)==map.end() 时不存在
2.count函数
统计key值在map中出现的次数
int count(key)












猜你喜欢

转载自blog.csdn.net/weixin_30104533/article/details/80550277