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)