2
我有一個問題,在QList中使用STL算法:執行它時崩潰。 Debuger進一步進入lambda,所以在進入崩潰之前是。 (所以,如果列表爲空,則會在1次迭代中崩潰,如果列表中有1個元素 - 在2次迭代中等)。在Qt容器中使用STL算法
void FindDialog::findEntries()
{
QList<StudentEntry> searchResult;
condition = [this] (const StudentEntry &entry) -> bool {
// crashes here
return entry.name.getSurname() == surnameEdt1->text() &&
entry.group.getValue() == groupEdt->text();
};
std::copy_if(model->getStudentEntryList().begin(),
model->getStudentEntryList().end(),
searchResult.begin(),
condition);
}
我該如何解決問題?
你可能想用['標準:: back_inserter(信息搜索結果)'] (http://en.cppreference.com/w/cpp/iterator/back_inserter)作爲輸出迭代器 – WhiZTiM
getStudentEntryList()不會返回副本,是嗎? – 2017-06-04 18:58:10
你的問題不是真的Qt相關。它會和'std :: list'一樣崩潰。你看過正確的例子,說明使用'copy_if'嗎? –