【发布时间】:2013-09-22 23:52:41
【问题描述】:
在我的项目中,我需要确定字符串在字符串列表中的出现。列表中不允许重复,顺序无关。
请帮我为字符串搜索选择最佳的 Qt 容器。
【问题讨论】:
-
如果不能重复,那么我会说 QSet 就是你想要的。
标签: c++ string qt search containers
在我的项目中,我需要确定字符串在字符串列表中的出现。列表中不允许重复,顺序无关。
请帮我为字符串搜索选择最佳的 Qt 容器。
【问题讨论】:
标签: c++ string qt search containers
如果你想要一个字符串列表,Qt 提供了 QStringList 类。
添加完所有字符串后,您可以调用 removeDuplicates 函数来满足您不重复的要求。
要搜索字符串,请调用 filter 函数,该函数会返回包含字符串的字符串列表,或传递给函数的正则表达式。
这是一个改编自 Qt 文档的示例:-
// create the list and add strings
QStringList list;
list << "Bill Murray" << "John Doe" << "Bill Clinton";
// Oops...added the same name
list << "John Doe";
// remove any duplicates
list.removeDuplicates();
// search for any strings containing "Bill"
QStringList result;
result = list.filter("Bill");
result 是一个包含“Bill Murray”和“Bill Clinton”的 QStringList
如果您只想知道一个字符串是否在列表中,请使用 contains 函数
bool bFound = list.contains("Bill Murray");
找到会返回真。
【讨论】: