map和set使用
map
map是一种关联式容器,map的作用是将key和value一一对应的绑定在一起。用一个结构体pair将他们组合。
map的使用
map的三种插入模式
map<string, string> dist;
// 插入方法1 显示构造
pair<string, string> k = { "苹果","水果" };
dist.insert(k);
//插入方法2 匿名对象
dist.insert(pair<string, string>{ "西瓜", "水果" });
//插入方法3
dist.insert(make_pair("南瓜", "水果"));
一个key只能对应一个value:
map的基本功能
map的基本功能就是统计次数。
先看插入函数:
string x[] = {"苹果", "苹果", "李子","苹果", "苹果" ,"李子","李子","李子","李子","西瓜"};
map<string, int> coutMap;
for (auto i : x)
{
cout << i << ' ';
}
cout << endl;
pair< map < string, int >::iterator, bool> ret;
map < string, int >::iterator ret2;
for (auto i : x)
{
ret=coutMap.insert(make_pair(i, 1));
if (ret.second == false)
{
ret2 = ret.first;
ret2->second++;
}
}
map<string, int>::iterator it =coutMap.begin();
while (it != coutMap.end())
{
cout << (*it).first << ' ' << (*it).second << ' ';
it++;
}
每当插入失败,则说明计数器+1。
map的pair介绍
pair就是存放两个不同数据类型的结构体。pair就是一个模板
map的[ ]介绍
map的[ ]可以说专为计数而生。
模拟实现这个[ ]
就是返回对应的value就可以了。