map部分重点
1.map的方括号
给key,返回value的引用,如果没有key,就插入一个key,无参构造的value的pair<>
适用:没有就插入,有就拿找到的值
insert返回pair<iterator,bool>,[]返回值
#include<iostream>
#include<map>
#include<vector>
using namespace std;
int main()
{
string str[] = { "苹果","梨子","香蕉","香蕉" ,"香蕉" };
map<string, int> num_fruit;
for (string& fruit : str)
{
//插入+修改
num_fruit[fruit]++;
}
for (pair<const string, int>& p : num_fruit)//map内部是const 键
{
cout << p.first << " " << p.second << endl;
}
return 0;
}
或是确定有了直接充当查找
erase键的返回删除成功次数(为了和mutimap同一)
位置就不返回
multimap
插入insert会插入相同键的,即插入一定成功
插入就直接返回迭代器了,而不是pair<iterator,bool>
find返回中序第一个
[]不再提供重载,有多个value