map容器
#include <iostream>
#include <map>
#include <set>
#include <algorithm>
template <typename T1, typename T2>
void display(const std::map<T1, T2> &arr){
for (const auto &i: arr)
std::cout << i.first << " " << i.second << " ";
std::cout << std::endl;
};
void printmap(const std::map<std::string, std::set<int>> &m)
{
for (const auto &i:m)
{
std::cout << i.first << " ";
for (const auto &s : i.second)
std::cout << s << " ";
}
std::cout << std::endl;
}
void test1()
{
std::map<std::string, int> s1 {
{"a3", 3},
{"a2", 2},
{"a1", 1},
};
display(s1);
s1.insert( std::pair <std::string,int>("A1", 100) );
display(s1);
s1.insert(std::make_pair("B1", 200));
display(s1);
s1["AA"] = 300;
s1["AA"] = 200;
s1["AA"] += 300;
std::cout << "a1计数" << s1.count("a1") << std::endl;
std::cout << "sm计数" << s1.count("sm") << std::endl;
auto it = s1.find("a3");
if (it != s1.end())
std::cout << "已找到" << it->first << " " << it->second<< std::endl;
else
std::cout << "未找到" << std::endl;
s1.clear();
}
void test2()
{
std::map<std::string, std::set<int>> s1 {
{"a3", {1, 2, 3}},
{"a2", {22, 23, 24}},
{"a1", {44, 45, 46}},
};
printmap(s1);
s1["a5"].insert(80);
printmap(s1);
auto it = s1.find("a1");
if (it != s1.end())
{
it->second.erase(44);
}
printmap(s1);
}
int main()
{
test2();
}