gpt4 book ai didi

c++ - 获取 vector c++中的字符串计数

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

我有这个 vector

vector <string> data

data = ["this is", "data that", "is in", "this is", "vector", "vector", "vector"]

我如何获得一个 vector (或二维数组)来删除重复项,而不是对每个第 i 个条目进行计数?

 results = [("this is", 2), ("data that", 1), ("is in", 1), ("vector", 3)]

最佳答案

直接的解决方案是将唯一值及其计数累积到映射中:

std::map<std::string, std::size_t> results;
std::for_each(begin(data), end(data), [&](std::string const& s)
{
++results[s];
});

这具有线性 (n lg n) 时间复杂度,但因为它必须复制每个不同的字符串值,所以它可能相当昂贵。您还可以就地对列表进行排序,然后计算每个值的数量,如果您有 std::string 的移动感知实现,这可能会执行得更好。

关于c++ - 获取 vector c++中的字符串计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10729444/

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