【发布时间】:2016-11-06 05:53:25
【问题描述】:
例如,我有一个城镇列表。实际上有20个,但在我的20个城镇字符串数组中只有4个独特的城镇,但它们随机分散在数组中并且可以重复。如何找到独特的城镇计数?
【问题讨论】:
-
创建一个
std::map和cityName作为键。
标签: c++
例如,我有一个城镇列表。实际上有20个,但在我的20个城镇字符串数组中只有4个独特的城镇,但它们随机分散在数组中并且可以重复。如何找到独特的城镇计数?
【问题讨论】:
std::map 和cityName 作为键。
标签: c++
使用std::set,例如
std::set<std::string> myset(list_of_towns.begin(), list_of_towns.end());
假设您的城镇名称位于名为 list_of_towns 的 std::vector 中。
【讨论】:
您可以创建unordered_map 来存储每个城镇名称的出现。然后删除出现值 > 1 的条目。
unordered_map<string, int> m;
for(int i = 0; i < sizeof(town)/sizeof(town[0])); i++){
m[town[i]]++;
}
for(unordered_map<string, int>::iterator it = m.begin(); it != m.end();){
if(it->second > 1) it = m.erase(it); //erase returns next iterator since C++11
else it++;
}
std::cout << m.size() << std::endl;
【讨论】: