gpt4 book ai didi

c++ - 将 QList 添加到 QList

转载 作者:行者123 更新时间:2023-11-30 02:22:53 25 4
gpt4 key购买 nike

我对 Qt Qlist 容器有一个有趣的问题。尝试将 QList append 到 QList 会使我的迭代器指向内存的未知部分。

QList<int> listSmall;
QList<QList<int>> listBig;

for(int i = 0; i < 3; ++i)
listSmall.append(i);

for(auto it = listSmall.begin(); it != listSmall.end(); ++it)
listBig.append(listSmall);

条件 it != listSmall.end(); 如果我将小列表 append 到大列表,则始终为真。为什么会这样?

附言STL 列表工作得很好。

最佳答案

当与类似 STL 的迭代器一起使用时,这是 Qt 容器的一个已知限制。 documentation解释它。

Implicit sharing has another consequence on STL-style iterators: you should avoid copying a container while iterators are active on that container. The iterators point to an internal structure, and if you copy a container you should be very careful with your iterators.

恐怕您将不得不找到一种不同的方式来做您想做的事情(例如使用标准列表或以不同的方式迭代)。

关于c++ - 将 QList 添加到 QList<QList>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46824426/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com