所以我有一个向量持有这样的向量:
vector<vector<int>> vec;
我正在尝试使用比较器(pred)来遍历 vec 中的向量,并确定哪些向量被 remove_if 和擦除删除。到目前为止,我的代码如下:
vector<vector<int>> deleted_vecs;
vec.erase(remove_if(vec.begin(), vec.end(),
([vec, pred](vector<int> x) {
if (pred(x)) {
return true;
}
else {
deleted_vecs.push_back(x);
return false;
}
},
vec.end())));
我在这里做语法方面有什么问题吗?
我的编译器错误位于“if (pred(x))”和“deleted_vecs.push_back(x);”行 并说没有对 pred 和 push_back 匹配的函数调用,尽管我的谓词专门用于接收向量,并且我已将 deleted_vecs 声明为向量>。这使我认为这是我如何声明 x 的问题,但我不确定。
任何帮助,将不胜感激!