问题标签 [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.
c++ - 重新审视 QList 与 QVector
我的问题基本上是何时选择QVector
以及何时选择QList
作为 Qt 容器。我已经知道的:
- Qt 文档:QList 类
对于大多数用途,QList 是正确使用的类。它的基于索引的 API 比 QLinkedList 的基于迭代器的 API 更方便,而且它通常比 QVector 更快,因为它将项目存储在内存中的方式。它还扩展到您的可执行文件中的更少代码。
同样写的是这个非常流行的问答:QVector vs QList。它也有利于 QList。
但是:在最近的 2015 年 Qt 世界峰会上,KDAB 提出了“为什么 QList 有害”,这基本上是在这里:
不要使用 QList,使用 Q_DECLARE_TYPEINFO
据我了解,这个想法是QList
几乎所有类型在堆中分配新元素时都是低效的。每次添加新元素时,它都会调用new
(每个元素一次),与QVector
.
这就是为什么现在我想了解:QVector
我们应该选择它作为默认容器吗?
qt - 将 QMap 的一部分作为 QVector
QMap<double, double> a
我在-element中有一些元素。现在我想得到一些值的向量a
。最简单的方法是(对我来说):
和作为要复制的元素的停止和开始位置x1
。x0
但是有没有更快的方法而不是使用这个 for 循环?
编辑:“更快”是指更快的输入和(不可能,如所指出的)更快的执行。正如已经指出的那样,values(i)
它没有按预期工作,因此我将把它作为伪代码留在这里,直到找到更好的替代品。
qt - 无法访问复杂的 qvector 的方法
我有一个看起来像这样的数据结构:
当我写wow->at(0).keys();
它工作正常,但当我写wow[0].keys();
我收到一个错误说如下:
'class QVector, QVector >>' 没有名为 'keys' 的成员 wow[0].keys(); ^
我将需要使用不仅需要只读访问权限的方法,而且我不明白为什么会发生这种情况。您能帮帮我吗?我应该如何以非只读方式访问 Qhashe 的方法?
qt - QtConcurrent map() 就地数组
我有一大堆浮点数。我想调用QtConcurrent::map()
它并更改适当的值。
我可以在不复制数组的情况下做到这一点吗?它似乎map()
需要一个QVector
as 参数,我找不到QVector
从数组初始化 a 而不制作副本的方法。
c++ - 如何在 Qt 中声明和使用二维整数数组(GUI)?
我想在我的 QT GUI APPLICATION 的头文件中创建一个 2D 整数数组,其中包含 2 列和尚未定义(因此是动态的)行数。
到目前为止,我得到了这个:制作一个动态数组
我可以将它用作二维数组吗?而且,我以后如何调用某一列中的某一行?例如ArrayName[40][2]
?
c++ - 如何实例化并附加到指向我的对象的指针的 QVector
我需要实例化并附加到指向我的对象的指针的 QVector
我的标题说
QVector<Stuff*> myResults;
通过注释掉一些东西,我把它缩小到我对 QVector 的使用
1)当我尝试
2)当我尝试
我明白了
First-chance exception at 0x00007FF652523520 in LibTestd.exe: 0xC0000005: Access violation reading location 0x0000000000000030.
我复制并粘贴了不同的方法来实例化我的 qvector 无济于事。包括来自 doc.qt.io 的示例,其中 0 和 50
QVector<Stuff> vector(0);
我已经尝试使 QVector 中的类类型不是指针和取消引用的东西。
我真的不知道出了什么问题,但我相当肯定这与我滥用指针有关。有人可以给任何...指针吗?:P
顺便说一句,如果它是相关的,东西翻译单元(我的意思是,同名的 Stuff.h 和 Stuff.cpp 文件(是翻译单元的名称吗?))有两个类,Crap 类和 Stuff 类, 东西不能没有废话。我的构造函数中有这样的初始化列表。
顺便说一句,我实例化这样的东西Stuff * stuff = new Stuff()
c++ - 从文件读取的数据比文件大小占用更多的内存
我通过以下方式将一些数据写入文件:
该文件最终等于 484MB。之后我循环阅读它:
当这个读取循环正在运行时,我看到在任务管理器中我的程序开始占用大约 1300MB 的内存,之后我收到“在文件 text\qharfbuzzng.cpp,第 626 行:内存不足”错误。我的问题是:程序开始占用 2 倍以上的文件内存是否正常,我应该分块读取它还是我做错了什么?
c++ - 类范围内的二维向量
我想要一个包含字符串的二维向量,所以我尝试了类似的方法:
这是我在这里找到的初始化
我还读到它不可能在类范围内没有初始化向量,应该在构造函数中完成,我理解但是我无法在类范围内定义 var 的原型。
我也试过
所以我的问题是:如何在类范围内定义向量,然后在构造函数中对其进行初始化?
c++ - C++中数组的QVector
我试图将多项式系数保存在QVector
. 我的多项式是 2 次的,所以它有三个数字。
当我定义QVector<double[3]> zeros_Real(n + 1)
我得到一个错误(如下)。首先,我认为我可以使用QVector<QVector<double>>
,但这将是速度和内存问题,所以我决定不这样做。
为什么我不能有一个QVector
元素double[3]
?
错误:
c++ - 为什么 QVector 的迭代器使用前缀增加而后缀在内部减少?
我目前正在为内部数据结构实现迭代器,并查看了 QVector 如何实现其迭代器。我不明白为什么 QTypedArrayData::iterator 实现了它的 ++ 和 -- 运算符,例如:
我不明白的是两者之间的差异:为什么它使用后缀减量运算符?
感谢您的澄清!