【发布时间】:2012-06-14 10:07:37
【问题描述】:
所以我一直在寻找一种在字符串列表中搜索字符串的方法。我已经编写了以下代码
bool contains(const std::list<std::string>& data, const std::string& str)
{
std::list<std::string>::iterator i;
for(i=data.begin(); i!=data.end(); ++i)
{
if (str == *i)
return true;
}
return false;
}
这只是一个非常基本的代码。我知道 find 方法,但它包含 start 和 end 。理想的解决方案是使用整个容器。有一些相同的提升方法,但我不知道如何使用它们。你能举一些例子来提升查找元素的通用搜索吗?
【问题讨论】:
-
一个小建议,到目前为止,当调用您的函数时,参数已复制,如果您的列表很长,这可能会很糟糕。改用 (const) 引用:
bool contains(const std::list<std::string> &data, const std::string &str) -
谢谢,我会记住这一点的 :)