Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/wcf/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Qlist是否适合在服务中使用? 我正在创建一个C++程序,它将作为一个服务(Linux下运行),而我使用Qt,因为有许多方便的方法。我正在使用QList来跟踪将在几个月内添加到QList和从QList中删除的项目。(每天可能有数百次添加/删除)_C++_Qt_Memory_Qlist - Fatal编程技术网

Qlist是否适合在服务中使用? 我正在创建一个C++程序,它将作为一个服务(Linux下运行),而我使用Qt,因为有许多方便的方法。我正在使用QList来跟踪将在几个月内添加到QList和从QList中删除的项目。(每天可能有数百次添加/删除)

Qlist是否适合在服务中使用? 我正在创建一个C++程序,它将作为一个服务(Linux下运行),而我使用Qt,因为有许多方便的方法。我正在使用QList来跟踪将在几个月内添加到QList和从QList中删除的项目。(每天可能有数百次添加/删除),c++,qt,memory,qlist,C++,Qt,Memory,Qlist,根据我最近的阅读,QList似乎从未缩水——它们只在内存使用方面有所增长(直到整个QList被释放)。这是否使QList不适合在无限期运行的应用程序中使用 我必须创建自己的链表吗?或者有没有办法“收缩”/清理QList中使用的内存 更新:根据以下反馈,QLinkedList是否更可取?(当列表的一个成员被“擦除”时,它会立即释放内存吗?Qt有自己的QVector和QLinkedList QVector有一个函数,可以在需要时释放未使用的内存Qt有自己的QVector和QLinkedList Q

根据我最近的阅读,QList似乎从未缩水——它们只在内存使用方面有所增长(直到整个QList被释放)。这是否使QList不适合在无限期运行的应用程序中使用

我必须创建自己的链表吗?或者有没有办法“收缩”/清理QList中使用的内存



更新:根据以下反馈,QLinkedList是否更可取?(当列表的一个成员被“擦除”时,它会立即释放内存吗?

Qt有自己的QVector和QLinkedList


QVector有一个函数,可以在需要时释放未使用的内存

Qt有自己的QVector和QLinkedList

QVector有一个函数,可以在需要时释放未使用的内存

什么是“读取”让您了解了
QList
?如果它永远不会释放未使用的内存,那么它实际上就是在泄漏内存,事实并非如此

QList
在内部实现为指针向量。当对象足够小,可以容纳与指针相同数量的字节时,列表相当于一个
QVector
。内部向量可能不会收缩,但实际上这并不重要。每个元素只有4或8个字节,并且以列表中的项目总数为界。这很可能是在转移注意力。

是什么“阅读”让你产生了关于
QList
的想法?如果它永远不会释放未使用的内存,那么它实际上就是在泄漏内存,事实并非如此



QList
在内部实现为指针向量。当对象足够小,可以容纳与指针相同数量的字节时,列表相当于一个
QVector
。内部向量可能不会收缩,但实际上这并不重要。每个元素只有4或8个字节,并且以列表中的项目总数为界。这很可能是一条红鲱鱼。

哎呀!我不知道这是关于QList的。QueLT是Qt(C++ C++库)的一个特性,@ LaseRyWrar,文档中这样说,但是qLead使用了<代码> T*[] /Cord>(指针指向T的数组)为了存储数据,这样就不会那么糟糕,@ratchetfreak似乎有一些好的信息:)您是否确实测量了
QList
的内存使用情况,并将其确定为您需要担心的事情,或者这只是cargo cult编程?在具有64位指针的平台上,根据经验,
QList
每100个大项目(大于8字节)大约有1KB的开销。此开销随着列表中一次存储的项目数的峰值而增加。因此,例如,如果您在列表中存储的项目不超过1000个,则开销永远不会超过10k字节。我认为担心是浪费时间。如果你不这么认为,请与我们分享你是如何测量的以及测量结果是什么!我不知道这是关于QList的。QueLT是Qt(C++ C++库)的一个特性,@ LaseRyWrar,文档中这样说,但是qLead使用了<代码> T*[] /Cord>(指针指向T的数组)为了存储数据,这样就不会那么糟糕,@ratchetfreak似乎有一些好的信息:)您是否确实测量了
QList
的内存使用情况,并将其确定为您需要担心的事情,或者这只是cargo cult编程?在具有64位指针的平台上,根据经验,
QList
每100个大项目(大于8字节)大约有1KB的开销。此开销随着列表中一次存储的项目数的峰值而增加。因此,例如,如果您在列表中存储的项目不超过1000个,则开销永远不会超过10k字节。我认为担心是浪费时间。如果你不这么认为,请与我们分享你是如何测量的以及结果是什么。从更多的阅读来看,QVector添加/删除的开销很大。(我的列表将经历快速变化)。由于我只在列表的末尾添加了附加项,这是否会使QLinkedList成为首选项?@Michelle取决于您在哪里添加和删除,在Qt中还实现了其他功能(以及在标准的C++库中),我仍然是Qt的初学者,因此试图避免更多的学习(已经被Qt淹没)。我看到QLinkedList没有挤压命令,那么这是否意味着它总是立即释放未使用的内存(在擦除调用时)?所以这似乎是最重要的best@MichelleQLinkedList立即从更多的读取中释放出未使用的内存。看起来QVector在添加/删除时有很多开销。(我的列表将经历快速变化)。由于我只在列表的末尾添加了附加项,这是否会使QLinkedList成为首选项?@Michelle取决于您在哪里添加和删除,在Qt中还实现了其他功能(以及在标准的C++库中),我仍然是Qt的初学者,因此试图避免更多的学习(已经被Qt淹没)。我看到QLinkedList没有挤压命令,那么这是否意味着它总是立即释放未使用的内存(在擦除调用时)?所以这似乎是最重要的best@MichelleQLinkedList立即释放未使用的内存可能是文档中声明的部分:
注意,内部数组只会在列表的生命周期内变得更大。它从不收缩。当一个列表分配给另一个列表时,内部数组由析构函数和赋值运算符解除分配。
@thuga,内部数组每个元素存储4-8字节。除非存储非常小的元素,否则它永远不会收缩并不重要。仅由几个大小合适的元素占用的存储空间将使阵列使用的任何空间都黯然失色