當循環通過QList<T>
和foreach
循環時,在進行的測試中,項目以與標準for
循環相同的順序返回。Qt foreach循環排序與for循環for QList
我的問題是,foreach
總是按類似索引的數字順序返回物品,對於具有自然排序的容器(如QList
和QVector
)?例如,以下總是等效?
QList<T> list;
for(int i=0; i<list.count(); ++i)
{
// process items in numerical order by index
// do something with "list[i]";
}
foreach(T item, list)
{
// will items always be processed in numerical order by index?
// do something with "item";
}
您不能在列表中使用[i]運算符,但只能在表(向量...)中使用內存中的隨機訪問。此外,請嘗試C++ 11 foreac循環:(for(T&item:list){/ * some code * /})。可能是這樣可以幫助 – Krozark
@Krozark Nope,'operator []'工作得很好。請參閱:http://qt-project.org/doc/qt-4.8/qlist.html#operator-5b-5d –
@NikosC。好的,但不是在STL中。所以對於你的問題,最有效的是使用迭代器使用begin()和end()(我真的不知道foreach宏是什麼...) – Krozark