如何解决如何通过数组初始化std :: map?
我有一个任务,要用数组填充空白std::map<char,std::set<std::string>> myMap
const char* s[] = { "car","sun","surprise","asteriks","alpha","apple" };
并使用range based for
和bindings
打印。结果应该像S: sun,surprise
我已经用这种方式实现的最后一个(打印)
for (const auto& [k,v] : myMap)
{
cout << "k = " << k << endl;
std::set<std::string>::iterator it;
for (it = v.begin(); it != v.end(); ++it)
{
cout << "var = " << *it << endl;
}
}
但是我如何通过const char* s[]
正确初始化此地图?
P.S。我知道,如何像std :: map
解决方法
怎么样?
const char* s[] = { "car","sun","surprise","asteriks","alpha","apple" };
std::map<char,std::set<std::string>> myMap;
for (auto str : s)
myMap[str[0]].insert(str);
// Result: {
// 'a' -> {"alpha","apple","asteriks"},// 'c' -> {"car"},// 's' -> {"sun","surprise"}
// }
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。