如何在C++中的2D矢量中找到矢量?

CSY*_*CSY 1 c++ vector c++11

我正在尝试实现一个函数来在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'

我搜索了很多论坛但找不到合适的答案.最好的方法是什么?

谢谢,肖恩

Pio*_*cki 6

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)