1、pair
构造
1 pair<int,char*> pair_a;//无参的构造函数
2 pair<int,char*> pair_t(2,"abc");//两个参数的构造函数
3 pair<int,string> pair_s = pair_t;//拷贝构造函数,隐式类型转换.
赋值&取值
1 pair_t.first = 1;
2 pair_t.second = "litzhang";
2 pair_t.second = "litzhang";
重载比较运算符
pair外的函数make_pair()
1 std::pair<std::string, double> m_pairA;
2 m_pairA = std::make_pair("sn001", 12.5);
2 m_pairA = std::make_pair("sn001", 12.5);
2、map & multimap
说明
都是以<key,value>形式的pair为元素的
自动排序的
key必须可以排序的类型
map不允许重复元素,multimap允许重复元素
头文件
#include <map>
构造
应用
统计英文单词出现的频率
1 #include <iostream>
2 #include <map>
3 using namespace std;
4
5 int main()
6 {
7 map<string, int> wordCount;
8 string word;
9 while (cin >> word)
10 ++wordCount[word];
11
12 for (map<string, int>::iterator it = wordCount.begin(); it != wordCount.end(); ++it)
13 cout<<"Word: "<<(*it).first<<" /tCount: "<<(*it).second<<endl;
14
15 return 0;
16 }
2 #include <map>
3 using namespace std;
4
5 int main()
6 {
7 map<string, int> wordCount;
8 string word;
9 while (cin >> word)
10 ++wordCount[word];
11
12 for (map<string, int>::iterator it = wordCount.begin(); it != wordCount.end(); ++it)
13 cout<<"Word: "<<(*it).first<<" /tCount: "<<(*it).second<<endl;
14
15 return 0;
16 }