C++ map 常用操作的使用方式
阿新 • • 發佈:2018-12-24
#include <cstdio> #include <cstring> #include <algorithm> #include <iostream> #include <map> using namespace std; map<int,int>mapp; int main() { //判斷map是否為空 if(mapp.empty()) printf("mapp為空\n"); //map的插入 有兩種方法 mapp.insert(pair<int,int>(1,10)); mapp.insert(pair<int,int>(5,50)); mapp.insert(pair<int,int>(7,70)); mapp.insert(pair<int,int>(3,30)); mapp.insert(pair<int,int>(4,40)); mapp[6]=60; //map的查詢功能 find()函式返回一個迭代器指向鍵值為key的元素,如果沒有找到就返回指向map尾部的迭代器 if(mapp.find(6)==mapp.end()) printf("沒有找到元素\n"); else printf("元素的value值為%d\n",mapp[6]); //map的刪除操作 map<int,int>::iterator it; for (int i=0;i<2;i++) { int n=6; it=mapp.find(n); if(it==mapp.end()) printf("沒有找到元素\n"); else { printf("%d\n",mapp[n]); mapp.erase(it); } } //map的遍歷 for (it=mapp.begin();it!=mapp.end();it++) printf("%d %d\n",it->first,it->second); //count,返回的是被查詢元素的個數。如果有,返回1;否則,返回0。 map<int,int>mapp1; for (int i=0;i<10;i++) { mapp1.insert(pair<int,int>(i%2,i)); } for (int i=0;i<3;i++) if(mapp1.count(i)) printf("存在%d呢\n",i); else printf("不存在%d呢\n",i); //size,返回map中元素的個數 printf("mapp1中含有%d個元素呢\n",mapp1.size()); //swap ,兩個map容器之間交換 map<int,int>m1,m2; for (int i=0;i<10;i++) { if(i%2) { m1[i]=i; } else { m2[i]=i; } } map<int,int>::iterator itt; printf("交換之前:\n"); printf("m1中的:\n"); for (itt=m1.begin();itt!=m1.end();itt++) { printf("%d %d\n",itt->first,itt->second); } printf("m2中的:\n"); for (itt=m2.begin();itt!=m2.end();itt++) { printf("%d %d\n",itt->first,itt->second); } swap(m1,m2); printf("交換之後:\n"); printf("m1中的:\n"); for (itt=m1.begin();itt!=m1.end();itt++) { printf("%d %d\n",itt->first,itt->second); } printf("m2中的:\n"); for (itt=m2.begin();itt!=m2.end();itt++) { printf("%d %d\n",itt->first,itt->second); } return 0; }