会不定期更新
一、不定长数组
<vector>
这个已经用得比较熟了,暂时不写
二、栈
<stack>
同上
三、队列
<queue>
同上
四、优先队列
同样在头文件<queue>中,是一个很有用的模板类,与queue的区别在于他不是按照入队顺序出队。
priority_queue<参数1,参数2,参数3>通常后两个参数可以省略。
五、集合
<set>
暂时没有太多用到,先不写。
六、映射
<map>
想看详细的介绍请移步:http://en.cppreference.com/w/cpp/container/map
这里只是粗略说说:
- #include<iostream>
- #include<string>
- #include<map>
- using namespace std;
-
- int main(){
- map<int,string> my_map;
- map<int,string>::iterator map_iter;
-
-
- my_map[0]="hello";
- my_map[1]="world";
- my_map[3]="!!!";
-
-
- my_map.insert(pair<int,string>(2,"ahaha"));
- my_map.insert(map<int,string>::value_type(4,"hehe"));
-
-
- for(map_iter=my_map.begin();map_iter!=my_map.end();map_iter++){
- cout<<map_iter->first<<" ";
- cout<<map_iter->second<<" ";
- }
-
-
- map<int,string> my_map2;
- my_map2.insert(map<int,string>::value_type(0,"PHP"));
- my_map2.insert(pair<int,string>(1,"C++"));
- my_map2.insert(pair<int,string>(2,"Java"));
- my_map2.insert(pair<int,string>(3,"Python"));
- my_map2.insert(pair<int,string>(4,"C#"));
- my_map.swap(my_map2);
- for(map_iter=my_map.begin();map_iter!=my_map.end();map_iter++){
- cout<<map_iter->first<<" ";
- cout<<map_iter->second<<" ";
- }
-
-
- map_iter=my_map.find(4);
-
-
- my_map.erase(map_iter);
-
-
- my_map.erase(my_map.begin(),my_map.end());
- }
下面的unordered_map多次在LeetCode中遇到:
<unordered_map>:
详细介绍移步这里:http://www.cplusplus.com/reference/unordered_map/unordered_map/
内部是用哈希表(Hash Table)实现的,不会像map一样根据索引自动排序。