我想使用lambda函数找到向量v的元素v [0] [0] = 1 v [0] [1] = 2并找到stl。
#include <iostream>
#include <algorithm>
using namespace std;
int main()
{
vector<vector<int>> v(3);
v[0].resize(2);
v[1].resize(2);
v[2].resize(2);
int n=1, m = 2;
v[0][0]=1; v[0][1]=2;
v[1][0]=0; v[1][1]=0;
v[2][0]=2; v[2][1]=3;
auto it = find(v.begin(), v.end(), [=]( vector<int> vet) {return (vet[0] == n && vet[1] == m);} );
return 0;
}
错误:与“ operator ==”不匹配(操作数类型为“ std :: vector”
和'const main()::)>')|
我不明白这个问题:vet [0]和n都是整数,因此应该定义operator ==。
最佳答案
我认为您打算使用find_if
。此外,语法应稍作更改。此外,m
和n
是lambda函数应作为参数接收的参数。因此,将您的代码更改为此:
auto it = find_if(v.begin(), v.end(), [n, m] (const vector<int>& vet) {return (vet[0] == n && vet[1] == m);} );
关于c++ - 在 vector C++矩阵中找到的项,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45652955/