在指针列表中查找一个项目
我试图了解如何使用 std::find 在 C++ 中的指针列表中查找项目
如果我有例如:
std::list<string> words;
std::string word_to_be_found;
我可以像这样搜索:
std::list<string>::iterator matching_iter = std::find(words,begin(), words.end(), word_to_be_found)
但如果我有一个指针怎么办?
std::list<string *> words;
上面的语法将不再起作用。我可以用类似的方式来做吗?
谢谢!
I am trying to understand how to find an item in a list of pointers in C++, using std::find
If I had for example:
std::list<string> words;
std::string word_to_be_found;
I could just search like this:
std::list<string>::iterator matching_iter = std::find(words,begin(), words.end(), word_to_be_found)
but what if I have a lsit of pointers?
std::list<string *> words;
the above syntax will not work anymore. Can I do it some similar way?
thanks!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
您可以将谓词传递给
std::find_if
函数:在 C++11 中,这变得更加容易,这要归功于 lambda:
You can pass a predicate to the
std::find_if
function:In C++11 this becomes much easier, thanks to lambdas:
提供您自己的谓词:
Provide your own predicate:
您想使用
std::find_if()
代替,并为其提供一个函子来进行比较。You want to use
std::find_if()
instead, and supply it a functor to do the comparisons.