gpt4 book ai didi

c++ - 删除字符串 vector 中的重复字符串

转载 作者:搜寻专家 更新时间:2023-10-31 00:15:06 25 4
gpt4 key购买 nike

我有下面列出的代码,我试图从字符串 vector 中删除任何重复的足球队名称。但是,它只是有时会起作用,它会删除某些团队的重复名称;但对于其他人来说,最终数组中会多次出现相同的团队名称。

例如它会打印:

aresnal
wigan
villa
liverpool
villa

请注意有两个“别墅”名称,有人可以给我建议吗?'finalLeague' 是存储所有名称的数组,也是需要删除重复项的数组。

  for (int i = 0;i < finalLeague.size();i++)
{
string temp = finalLeague[i];
int h = i + 1;
for (int j = i+1;j < finalLeague.size();j++)
{
if (finalLeague[j] == finalLeague[i])
{
finalLeague.erase(finalLeague.begin()+j);
}
}
}

最佳答案

当然,您可以使用 std::sortstd::unique 的组合和 std::vector::erase:

std::sort(finalLeague.begin(), finalLeague.end());
auto it = std::unique(finalLeague.begin(), finalLeague.end());
finalLeague.erase(it, finalLeague.end());

或者,首先使用不接受重复项的容器:

std::set<std::string> finalLeague;           // BST, C++03 and C++11
std::unordered_set<std::string> finalLeague; // hash table, C++11

关于c++ - 删除字符串 vector 中的重复字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20634743/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com