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 }