我正在尝试实现一个函数来在2D矢量中找到一个矢量.我写的是:
vector<vector<int> > result;
vector<int> line;
bool isPresent = find(result.begin(), result.end(), line)
Run Code Online (Sandbox Code Playgroud)
但是,这会产生错误
"第11行:初始化时无法将'__gnu_cxx :: __ normal_iterator*,std :: vector >>'转换为'bool'
我搜索了很多论坛但找不到合适的答案.最好的方法是什么?
谢谢,肖恩
InputIterator std::find(InputIterator first, InputIterator last, const T& val)
返回比较等于val的范围[first,last]中第一个元素的迭代器.如果找不到这样的元素,则该函数最后返回.
而是使用:
bool isPresent = std::find(result.begin(), result.end(), line) != result.end();
// ^^^^^^^^^^^^^^^
Run Code Online (Sandbox Code Playgroud)
要么:
bool isPresent = std::any_of(result.begin(), result.end(),
[&line](const std::vector<int>& x)
{ return x == line; });
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1112 次 |
最近记录: |