算法题中常见的C++ STL

来源:互联网 发布:电子商务模式的大数据 编辑:程序博客网 时间:2024/05/16 18:29

会不定期更新


一、不定长数组

<vector>

这个已经用得比较熟了,暂时不写


二、栈

<stack>

同上


三、队列

<queue>

同上


四、优先队列

同样在头文件<queue>中,是一个很有用的模板类,与queue的区别在于他不是按照入队顺序出队。

priority_queue<参数1,参数2,参数3>通常后两个参数可以省略。


五、集合

<set>

暂时没有太多用到,先不写。


六、映射

<map>

想看详细的介绍请移步:http://en.cppreference.com/w/cpp/container/map

这里只是粗略说说:

[cpp] view plain copy
  1. #include<iostream>  
  2. #include<string>  
  3. #include<map>  
  4. using namespace std;  
  5.   
  6. int main(){  
  7.     map<int,string> my_map;  
  8.     map<int,string>::iterator map_iter;//迭代器  
  9.   
  10.     //添加数据:  
  11.     my_map[0]="hello";  
  12.     my_map[1]="world";  
  13.     my_map[3]="!!!";  
  14.       
  15.     //添加数据——使用insert:  
  16.     my_map.insert(pair<int,string>(2,"ahaha"));//前面必须要有pair<类型1,类型2>  
  17.     my_map.insert(map<int,string>::value_type(4,"hehe"));//或者使用map<类型1,类型2>::value_type  
  18.       
  19.     //使用迭代器遍历:  
  20.     for(map_iter=my_map.begin();map_iter!=my_map.end();map_iter++){  
  21.         cout<<map_iter->first<<" ";  
  22.         cout<<map_iter->second<<" ";  
  23.     }  
  24.       
  25.     //交换——使用swap:  
  26.     map<int,string> my_map2;  
  27.     my_map2.insert(map<int,string>::value_type(0,"PHP"));  
  28.     my_map2.insert(pair<int,string>(1,"C++"));  
  29.     my_map2.insert(pair<int,string>(2,"Java"));  
  30.     my_map2.insert(pair<int,string>(3,"Python"));  
  31.     my_map2.insert(pair<int,string>(4,"C#"));  
  32.     my_map.swap(my_map2);//交换以后,所有的内容都变了  
  33.     for(map_iter=my_map.begin();map_iter!=my_map.end();map_iter++){  
  34.         cout<<map_iter->first<<" ";  
  35.         cout<<map_iter->second<<" ";  
  36.     }  
  37.   
  38.     //查找:  
  39.     map_iter=my_map.find(4);  
  40.       
  41.     //删除(单个对):  
  42.     my_map.erase(map_iter);  
  43.       
  44.     //删除(一个范围):  
  45.     my_map.erase(my_map.begin(),my_map.end());  
  46. }  

下面的unordered_map多次在LeetCode中遇到:

<unordered_map>:

详细介绍移步这里:http://www.cplusplus.com/reference/unordered_map/unordered_map/

内部是用哈希表(Hash Table)实现的,不会像map一样根据索引自动排序。