1、创建pair的三种方法
pair<string, string> next_auth;
string first, last;
cin>>first>>last;
//method 1
next_auth = pair<string, string> (first, last);
//method 2
next_auth = make_pair(first, last);
//method 3
cin>>next_auth.first>>next_auth.second;
2、map中对于键的类型,唯一的约束就是必须支持 < 操作符,至于是否支持其他的关系或者相等运算,则不作要求。
3、map定义的类型
map<int, vector<int> >
key_type : int
mapped_type : vector<int>
value_type : pair<const int, vector<int> >
4、下标行为的编程意义
对于map容器,如果下标表示的键在容器中不存在,则添加新元素,这一特性可以使程序惊人的简练。
即就是不需要判断key在不在map里面。
但是同样的这样就带来了一个副作用:如果该key不在map容器中,那么下标操作会插入一个新的具有该键的元素。
5、insert的返回值
带有一个key-value的pair的形参的insert版本将返回一个值:包含一个迭代器和一个bool值的pair对象。
map<string, int> word_count;
string word;
while(cin>>word)
{
pair<map<string, int>::iterator, bool> ret = word_count.insert(make_pair(word, 1);
if(!ret.second)
++res.first->second; //++((res.first)->second)
}