【C++primer学习笔记】第10章 关联容器

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)
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值