【问题标题】:How to find unique element count in string array? [duplicate]如何在字符串数组中查找唯一元素计数? [复制]
【发布时间】:2016-11-06 05:53:25
【问题描述】:

例如,我有一个城镇列表。实际上有20个,但在我的20个城镇字符串数组中只有4个独特的城镇,但它们随机分散在数组中并且可以重复。如何找到独特的城镇计数?

【问题讨论】:

  • 创建一个std::mapcityName 作为键。

标签: c++


【解决方案1】:

使用std::set,例如

std::set<std::string> myset(list_of_towns.begin(), list_of_towns.end());

假设您的城镇名称位于名为 list_of_towns 的 std::vector 中。

【讨论】:

  • 对我的口味的假设太多了。
  • @πάνταῥεῖ 我同意(包括评论upvote)但是,嘿,由于问题的质量,让 OP 不仅仅是开始谷歌搜索的东西真的不那么可行......
【解决方案2】:

您可以创建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;

【讨论】:

  • 我还是个新手,这对我来说是新的,我可以得到完整代码的答案吗?只是希望它打印唯一计数。这是开始: #include #include #include #include using namespace std; string town[5]={“维尔纽斯”,“克莱佩达”,“克莱佩达”,“维尔纽斯”,“考纳斯”} int main() { return 0; }
  • @MatasLiutikas 您自己的代码属于您的问题,而不是在对答案的后期评论中
猜你喜欢
  • 2011-02-17
  • 2021-01-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-03-07
  • 2019-08-04
  • 2021-01-04
相关资源
最近更新 更多