问题标签 [qvector]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
48 浏览

c++ - 自己的模板崩溃原因

为什么我使用模板时程序会崩溃?我做错了什么?这是一个测试程序,因为实际程序太大,无法在此处发布。第一个qDebugwithtest1显示,但第二个不显示。

我在 MS Vista 上使用 Qt 5.4。

提前致谢!

0 投票
1 回答
619 浏览

c++ - QVector内存泄漏?

在与此相关之前,我已经在这里看到了其他问题,但我的问题并不围绕包含指针的 QVector 展开。

我有一个“网格”类,其中包含几个 QVector< T >,用于保存顶点、索引、法线等,所有这些都作为标准对象保存。

最近我注意到,每次删除网格时,我的应用程序使用的内存量并没有减少。我一直在使用 Windows 任务管理器监视我的应用程序内存使用情况,并且已经看到它高达 1000mb,而没有丢失一个字节。

我已经用调试器验证了我正在到达我的网格类的解构器,并且我的向量正在被删除,但内存仍然没有被释放。

有问题的解构器:

我使用了 Visual Leak Detector,它似乎主要显示了我正在使用的库 (Qt) 中的泄漏,此外还告诉我我的一些构造函数正在泄漏,如下所示:

但是我在这里没有看到任何问题,因为这些对象在调用之前没有被初始化。

我真的不太了解智能指针,但是我很犹豫是否要切换应用程序中的所有内容以使用它们,因为我不知道它们是否会真正或完美地替代我当前的使用而没有任何问题。例如,我可能会将一些指针(例如整个网格)传递给另一个类,但我可能不希望其他类在其自身销毁时删除该网格。

编辑:我以为我有一个写得很体面的问题,但似乎人们更喜欢跟风投反对票。我会尝试其他程序来监控我的问题。

0 投票
1 回答
1078 浏览

c++ - 如何将包含我的类对象的 QVector 的数据写入文件?

如何将包含我的类对象的 QVector 的数据写入文件?我怎样才能做到这一点?

0 投票
1 回答
932 浏览

c++ - Qt 读取文件并映射到 QVector 非常慢(崩溃)

所以我想做的是读取一个文件并将其映射到一个二维 QVector。到目前为止,这是我的代码

我的问题是,当处理 1000,000 行或更多行时,程序崩溃并显示一条消息“此应用程序已请求运行时以不寻常的方式终止它”。有没有更有效的方法可以实现我的目标?如果有怎么办?

输入文件可能是这样的格式

ID,姓名,年龄,性别...等

1,山姆,12

...

...

1000000

我非常感谢任何帮助或建议

0 投票
1 回答
1573 浏览

qt - 为什么 Qt 的容器类不允许可移动、不可复制的元素类型?

Qt 容器类QList<T>QVector<T>要求它们的元素类型是可复制的。从 C++11 开始,STL 容器要求它们的元素类型只能是可复制或可移动的。为什么 Qt 容器不支持仅移动元素类型?

0 投票
1 回答
109 浏览

qt - 移动行时 ListView contentY 发生变化

我有一个 ListView 分为两部分:收藏夹和常规项目,具有继承的模型QAbstractItemModel。模型中的项目被排序,以便收藏在常规项目之前,当一个项目被标记为收藏时,它被移动到基础列表中的适当位置。

这是模型中执行移动的代码:

但是,每次发生移动时,ListViewcontentY都会更改-delegate.height(在本例中为 -120px)。唯一可见的变化是滚动条偏移并最终退出屏幕。

发生了什么事,我该如何解决?

编辑:我发现这只发生在 ListView 完全滚动到底部时。

0 投票
2 回答
4131 浏览

c++ - Change object of a QVector in an ordinary for loop

If I have a QVector I can use a range based loop, use a reference and change the objects in the QVector.

But in the case where I need the index while modifying the object I have to use an ordinary for loop. But how can I then change the value of the object in the QVector?

As workaround I used the replace method after changing the temporary object but that is kind of ugly.

This is the code:

0 投票
1 回答
952 浏览

c++ - QCache 和 QSharedPointer

问题是,我有一个QVectorofQSharedPointer并且我想把它们的一部分放到我的QCache. 如何插入共享指针QCache?如果我将指针设置为我的缓存但销毁其中的QVector和共享指针会发生什么?内存会被释放,我的缓存会指向无处吗?

0 投票
1 回答
1693 浏览

c++ - QVector 要求默认构造函数的原因是什么?

我可以看到这些类被视为调用默认构造函数所需的复杂对象:

但不清楚为什么需要在 QVector 的“隐藏”区域中构造对象。我的意思是这些对象根本无法访问,那么为什么不只是保留内存而不是真正的对象创建呢?

作为一个额外的问题,我想问一下,如果我想拥有一组不可默认收缩的对象,我可以安全地替换QVector<T>QVector<Wrapper<T>? Wrapper类似的东西在哪里:

0 投票
1 回答
1657 浏览

c++ - 初始化和访问> QT5

我已经声明了这一点:

它工作正常,但现在我想将每个测试QVector 维度初始化为 2 个长度:20 和 5。类似于:

但这不行。如何初始化它?

第二个问题是如何使用 [ ] 访问测试位置是否与此类似?:

谢谢。