- vector
vector <int> aaa;
vector.push_back()
vector.pop_back();
vector.size()
sort(vector.begin(), vector.end());
vector.clear()
v.insert(v.begin() + 3, a);
v.erase(v.begin() + 3);
v.erase(v.begin() + 3, v.begin() + 5);
对vector数组(二维)排序时考虑使用vector<vector<int> > 而不是vector<int> V[100]
- map
1.查找某个键值:
if (map.find(str) != map.end()) {
return map[str];
}
2.遍历 (迭代器不是指针,是类模板,表现的像指针。)
it->first //直接就是数据,不是指针!!!
it->second
3.map中存放数组
1)使用vector 2)使用结构体,结构体里面存放数组
[转载]C++中 使用数组作为map容器VAlue值的解决方法
- queue
queue.push() ; queue.pop(); 入队;出队
queue.front(); queue.back(); 取队首,队尾元素
queue.empty();
queue.size()
- priority_queue
使用的是堆来进行排序
定义:greater<int> 是按从小到大排序 ,less<int>按从大到小。相当于定义大顶堆,小顶堆。
使用greater<int> 需包含头文件 #include <functional>
priority_queue<int, vector<int>, greater<int> > que;
que.push() ; que.pop(); 入队;出队
que.top(); 取队头(即堆顶)元素
- stack
stack里面没有clear,要使用
while(!S.empty()){
S.pop();
}
- set
使用红黑树按升序排列
set<int> st;
set只能通过iterater来访问
set<int>::iterator it = set.begin();
st.insert(); //插入
st.erase(it); // 删除
it = st.find(2); //查找元素, 返回迭代器
迭代器
// set<int> S
for (set<int>::iterator it = S.begin(); it != S.end(); it++) {
printf("%07d\n", *it);
}