c++ map的一些基础函数用法
2017-09-11 20:42
429 查看
#include <stdio.h> #include <iostream> #include <cstdlib> #include <cmath> #include <cctype> #include <string> #include <cstring> #include <algorithm> #include <ctime> #include <map> #include <vector> using namespace std; typedef pair<string, int> p; bool cmp(p m1,p m2) { return m1.second<m2.second; //自定义的比较方法 按照value的从小到大输出 } string week[7]={"Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"}; int main() { map<string, int> maps; vector<pair<string, int>>v; cout<<"----------------------"<<endl; for (int i=0;i<7;i++){ // 给map赋值 也可以用 insert(make_pair()); maps[week[i]]=i; } map<string, int>::reverse_iterator iter; // map 默认按照key的从大到小输出 这里是倒序遍历 for (iter=maps.rbegin();iter!=maps.rend();iter++) { cout<<"["<<iter->first<<"-"<<iter->second<<"]"<<endl; v.push_back(make_pair(iter->first,iter->second)); } cout<<"----------------------"<<endl; sort(v.begin(),v.end(),cmp); // 排序 for (int i=0;i<v.size();i++) { cout<<v[i].first<<"-"<<v[i].second<<endl; // 利用vector 实现map的按照value的从小到大输出; } cout<<"----------------------"<<endl; string needfind="Monday"; map<string,int>::iterator it=maps.find(needfind); // find 查找是否有指定的key,不存在返回end if (it==maps.end()) cout<<"not find"<<endl; else cout<<"I Find It"<<endl; cout<<"----------------------"<<endl; int num=maps.count("Monday1"); if (num)cout<<"I Find It"<<endl; // count 找指定key的个数 没有则为0; else cout<<"not find"<<endl; cout<<"----------------------"<<endl; string needfind2="Monday"; map<string,int>::iterator it2=maps.find(needfind2); // erase 删除 某个指定key的元素,也可以删除范围内的key if (it==maps.end()) cout<<"not find"<<endl; else cout<<"I Find It and I delete it"<<endl,maps.erase(it2); map<string,int>::iterator it3; for (it3=maps.begin();it3!=maps.end();it3++) { cout<<it3->first<<"-"<<it3->second<<endl; } cout<<"!!! Monday is deleted"<<endl; cout<<"----------------------"<<endl; map<int,string> m1,m2; // swap 实现两个map互换 m1.insert(make_pair(1,"m1")); m2.insert(make_pair(2,"m2")); for (map<int,string>::iterator it4=m1.begin();it4!=m1.end();it4++) { cout<<"我是m1 我的值是"<<endl; cout<<it4->first<<"-"<<it4->second<<endl; } m1.swap(m2); // m1和m2互换了 ; for (map<int,string>::iterator it4=m1.begin();it4!=m1.end();it4++) { cout<<"我是m1 我的值是"<<endl; cout<<it4->first<<"-"<<it4->second<<endl; } return 0; }
输出结果
相关文章推荐
- 关于C++的一些细节[五:函数-基础]
- C++ STL 中map的一些用法
- C/C++基础———C/C++中函数指针和数组指针、数组名的一些个人理解
- C++一些函数的用法
- c++ 提高4 map容器 共性机制 使用时机 比较| STL算法 算法基础仿函数 谓词 函数适配器 遍历算法
- Sqlserver基础教程系列4-一些函数的用法
- spark中flatMap函数用法--spark学习(基础)
- C++新手上路第七天 string的一些函数用法
- [C++基础]typedef 函数指针的用法
- lua--从小白开始(4)--C/C++函数访问lua数据的一些基础协议
- SQLServer学习笔记<>.基础知识,一些基本命令,单表查询(null top用法,with ties附加属性,over开窗函数),排名函数
- C++--------------------------------------Map的基础用法
- C++ 一些CString变量的用法技巧总结
- map及其相关函数的用法
- C++之函数fgets和fputs、fread和fwrite、fscanf和fprintf用法小结
- C++中的STL中map用法详解
- coreText的一些基础用法
- c/c++基础(十) c中内部函数和外部函数
- 最全的c++map的用法
- string一些常用函数基础