在我正在上课的课程中,我正在玩几个人QList.我听说Qt试图尽可能不制作列表的深层副本.据我所知,这意味着当你这样做时不会发生深层复制:
QList<int> myList;
myList << 1 << 2 << 3 << 4;
QList<int> otherList = myList; // No deep copy
Run Code Online (Sandbox Code Playgroud)
在某些情况下,我需要确保永远不会发生深层复制QList.我需要确保避免什么样的操作或操作才能确保QList我正在使用的深层拷贝永远不会发生?
我正在迭代QLinkedList使用foreach循环,但我需要删除项目,如果它们匹配某个条件.在不搞乱循环的情况下,这样做的正确方法是什么?
foreach( Object obj, myLinkedList )
{
if( obj.val == BAD_VAL )
// remove the item from myLinkedList
}
Run Code Online (Sandbox Code Playgroud)
我发现了其他一些解决这个问题的问题,但不是针对链表等一般情况.
如果可能的话QSet,我也想知道其他数据结构(如QHash,等等).谢谢