c++ map之中find和count函數的區別
阿新 • • 發佈:2017-09-16
結果 個數 make algo -h ring images str 代碼
編程的時候比較常用,今天記錄一下,以後備用。
使用count,返回的是被查找元素的個數。如果有,返回1;否則,返回0。註意,map中不存在相同元素,所以返回值只能是1或0。
使用find,返回的是被查找元素的位置,沒有則返回map.end()。
find的函數值是一個iter 結構體,count是數值
例子:
1 #include<string>
2 #include<cstring>
3 #include<iostream>
4 #include<queue>
5 #include<map>
6 #include<algorithm>
7 using namespace std;
8 int main(){
9 map<string,int> test;
10 test.insert(make_pair("test1",1));//test["test1"]=1
11 test.insert(make_pair("test2",2));//test["test2"]=2
12 map<string,int>::iterator it;
13 it=test.find("test0");
14 cout<<"test0 find:";
15 if(it==test.end()){
16 cout<<"test0 not found"<<endl;
17 }
18 else{
19 cout<<it->second<<endl;
20 }
21 cout<<"test0 count:";
22 cout<<test.count("test1")<<endl;
23
24 cout<<"test1 find:";
25 it=test.find("test1");
26 if(it==test.end()){
27 cout<<"test1 not found"<<endl;
28 }
29 else{
30 cout<<it->second<<endl;
31 }
32 cout<<"test1 count:";
33 cout<<test.count("test1")<<endl;
34
35 cout<<"after inserting test1"<<endl;
36 test.insert(make_pair("test1",2));
37 cout<<"test1 find:";
38 it=test.find("test1");
39 if(it==test.end()){
40 cout<<"test1 not found"<<endl;
41 }
42 else{
43 cout<<it->second<<endl;
44 }
45 cout<<"test1 count:";
46 cout<<test.count("test1")<<endl;
47 return 0;
48 }
運行結果:
c++ map之中find和count函數的區別