给定矢量矢量,我想找到具有最小尺寸的矢量,并使用以下代码:
bool Longest(vector<int> &A, vector<int> &B){
return A.size()>B.size();
}
vector<vector<int> >::iterator max_itr= max_element(L.begin(),L.end(),Longest);
其中L是向量的矢量(vector<vector<int> >
)
我一直得到指向L.begin()的迭代器点。有什么建议吗?
答案 0 :(得分:1)
如果第一个操作数 less 而不是第二个操作数,则传递给std::max_element
的比较仿函数对象应返回true
。你的比较是错误的。你需要
bool Longest(const vector<int> &A, const vector<int> &B)
{
return A.size() < B.size();
}
另请注意,参数最好是const
引用,因为比较操作不应修改其操作数。