gpt4 book ai didi

qt - 同时替换一个很长的字符串中的多个单词的最快方法是什么

转载 作者:行者123 更新时间:2023-12-04 21:49:00 24 4
gpt4 key购买 nike

假设我有一个包含10000多个单词的字符串,比如是著名小说《老人与海》的内容

和一个有 1,000 个单词对的字典,例如,

before,after
--------------
fish , net
black, white
good, bad
....
....
round,rect

所以我想做的是,根据字典,将字符串中的所有“fish”替换为“net”,将“black”替换为“white”....

最简单直观的算法是:

foreach(line, dict)
str.replace(line.before,line.after)

但是效率太低了。

我能想到的一个改进是将字符串分成多个小字符串,然后使用多线程分别处理每个smallstring,然后合并结果。

还有其他想法吗?

顺便说一句,我正在使用 QT

最佳答案

我认为拥有一个包含 10k 个单词的向量而不是一个字符串是一个更好的主意。

就像这样:

QVector<QString> myLongString;

您的字典可以实现为哈希表:

QHash<QString, QString> dict;

这将为您的字典单词提供持续的访问时间:

QString replaceWith = dict.value("fish") // replaceWith == "net"

然后您可以遍历向量并替换单词:

for (int i=0; i < myLongString.size(); ++i)
{
QString word = myLongString[i];
if dict.contains(word)
{
myLongString[i] = dict.value(word);
}
}

关于qt - 同时替换一个很长的字符串中的多个单词的最快方法是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12048256/

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