我有一个数据向量列表(对象),我需要遍历列表,找到最大的向量,从列表中删除它并将其分配给一个新的变量(这是一个数据向量)。我在执行期间遇到问题(它编译好然后停止工作)。如何在不破坏元素的情况下获取元素,以便稍后进行操作?
这是代码:
int biggestIndex = 0, biggestValue = -1;
i = 0;
list< vector<Data> >::iterator it;
for (it = (myList).begin(); it!= (myList).end(); it++) {
if ((*it).size() > biggerSize) {
biggestIndex = i;
biggestValue = basePList.size();
}
i++;
}
it = (myList).begin();
advance(it,biggestIndex);
vector<Data> partition = (vector<Data>) *it;
答案 0 :(得分:0)
auto biggest = thelist.begin();
for (auto itr = thelist.begin() ; itr != thelist.end(); itr++) {
if (itr->size() > biggest->size()) {
biggest = itr;
}
}
vector<int> thebiggest = *biggest;
当然这需要在至少启用C ++ 11扩展的情况下进行编译,因此在您的g ++命令中添加-std=c++11
或更高版本。
答案 1 :(得分:0)
auto longest = *max_element(begin(myList),
end(myList),
[](const vector<Data>& v1, const vector<Data>& v2)
{return v1.size() < v2.size();});