c++STL基本使用
2016-04-30 21:16
369 查看
1.priority_queue | map | multimap | set | sort 基本使用
#include<iostream> #include<queue> #include<algorithm> #include<vector> #include<set> #include<map> using namespace std; struct Node{ string msg; int cmpKey; Node(){} Node(string _msg,int _cmpKey):msg(_msg),cmpKey(_cmpKey){} bool operator <(const Node&b)const{ return cmpKey > b.cmpKey; } }; bool cmpForVectorSort(const Node &a,const Node &b){ return a.cmpKey<b.cmpKey; } int main() { /** 1.priority_queue 使用 */ priority_queue<Node> q; q.push(Node("c",3)); q.push(Node("a",1)); q.push(Node("z",26)); while(!q.empty()){ Node cur = q.top(); q.pop(); cout<<cur.msg<<endl; } /** 2.vector,sort 使用 */ vector<Node> testVector; testVector.push_back(Node("c",3)); testVector.push_back(Node("a",1)); testVector.push_back(Node("z",26)); vector<Node>::const_iterator iter = testVector.begin(); cout<<"before sort ----------------"<<endl; for(;iter != testVector.end();iter++){ cout<<(*iter).msg << " "; } cout<<endl; sort(testVector.begin(),testVector.end(),cmpForVectorSort); iter = testVector.begin(); cout<<"after sort ----------------"<<endl; for(;iter != testVector.end();iter++){ cout<<(*iter).msg << " "; } cout<<endl; /** 3.map 使用 */ map<int,Node> m; m.insert(pair<int,Node>(33,Node("c",3))); m.insert(pair<int,Node>(33,Node("c",3))); m.insert(pair<int,Node>(11,Node("a",1))); m.insert(pair<int,Node>(2626,Node("z",26))); ////以下方式,必须提供Node的默认构造函数:Node(){} // m[33] = Node("c",3); // m[11] = Node("c",3); // m[2626] = Node("c",3); //查找元素 cout<<"if exits 33 : "<<(m.find(33) != m.end())<<endl; cout<<"if exits 333 : "<<(m.find(333) != m.end())<<endl; cout<<"map ----------------------------"<<endl; map<int,Node>::const_iterator iter2 = m.begin(); for(;iter2 != m.end();iter2++){ cout<<(iter2->second).msg<<" "; } cout<<endl; /** 4.multimap 使用 */ cout<<"multimap ----------------------------"<<endl; multimap<int,Node> mm ; mm.insert(pair<int,Node>(33,Node("c",3))); mm.insert(pair<int,Node>(33,Node("c",3))); multimap<int,Node>::const_iterator iter3 = mm.begin(); for(;iter3 != mm.end();iter3++){ cout<<(iter3->second).msg<<" "; } cout<<endl; /** 5.set 使用 */ set<Node> s; s.insert(Node("c",3)); s.insert(Node("a",1)); s.insert(Node("z",26)); cout<<"set ----------------------------"<<endl; set<Node>::const_iterator iterForSet = s.begin(); for(;iterForSet != s.end();iterForSet++){ cout<<(*iter).msg <<" "; } cout<<endl; }
相关文章推荐
- C++单元测试工具unittest++使用小结
- c++ sets
- Autoencoder的C++代码(带注释)。
- 用C++写Stash
- 1023. Have Fun with Numbers (20)
- Leetcode 14. Longest Common Prefix
- C++ 运算符重载
- C++ typedef用法详解
- Leetcode 13. Roman to Integer
- 课程设计__C++初步,C++对C的扩充
- Leetcode 12. Integer to Roman
- C++面试题汇集
- C++面试题汇集
- c++ Muitmaps
- 从c++到java的简单过渡
- c语言 翻译密码
- C++的Static函数
- 《More Effective C++》读书笔记-异常
- 程序源入坑之路5(c语言入门)
- c++ 实现字符串中替换字符串,也可去掉字符串中特定字符串