gpt4 book ai didi

c++ - 如何在 C++ 中使用对索引加速映射?

转载 作者:行者123 更新时间:2023-11-28 05:28:07 27 4
gpt4 key购买 nike

我有一张以 pair 为索引的 map 。我发现访问其中的元素需要花费很多时间。我想知道是否有一些方法可以加速这个过程?我的代码如下:

std::vector words;
...to generate a words vector...
std::map<std::pair<std::string, std::string>, int> wordCountMap;
wordsSize = words.size()
for(int i = 0; i < wordsSize; ++i){
for(int j = i + 1; j < min(i + e, wordsSize); ++j){
std::pair<std::string, std::string> pk = words[i] < words[j] ? std::make_pair(words[i], words[j]) : std::make_pair(words[j], words[i]);
wordPairCountMap[pk] = wordPairCountMap.find(pk) != wordPairCountMap.end() ? wordPairCountMap[pk] + 1 : 1;
}
}

我发现pair indexed map的构建花费了很多时间。我该如何优化它?

最佳答案

++wordPairCountMap[pk];

可以代替

wordPairCountMap[pk] = wordPairCountMap.find(pk) != wordPairCountMap.end() ?
wordPairCountMap[pk] + 1 : 1;

避免额外的查找。

另请注意,您使用配对做了很多字符串复制

关于c++ - 如何在 C++ 中使用对索引加速映射?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40101861/

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