Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >c++轻型可追加数组容器

c++轻型可追加数组容器
EN

Stack Overflow用户
提问于 2013-05-16 17:48:00
回答 2查看 922关注 0票数 1

这与我之前在Size of Qt containers: is QMap much larger than Qlist?问过的另一个问题有关。

基本上,我真的很想重新实现一个非常轻量级的容器,它允许添加项目(不管是在结尾还是在开头-不,它们不需要在内存中连续……非常像列表)。不需要其他函数,只需附加一个"count()“或"size()”函数来返回容器中元素的数量,这样我就可以遍历每个元素。

这是因为我创建了大量这样的容器,它们占用了大量的内存空间(参见我的另一个问题)。

有没有人提出过这样的挑战?我环顾了一下网络,大部分都重新实现了一个STL容器,它对我来说仍然太大了。我现在遵循的想法是以某种方式重写最简单的(forward_list) STL容器,但我不是那种功夫,但我会尝试。

谢谢您抽时间见我。

弗朗西斯科

EN

回答 2

Stack Overflow用户

发布于 2013-05-16 18:12:43

我认为std::vector和容器一样轻量级。它只有恒定的开销,不会为每个元素添加任何数据。您可以see here看到,gcc的std::vector实现占用了12个字节(在32位系统上)。你得到的不会比这个少很多。

票数 3
EN

Stack Overflow用户

发布于 2013-05-20 15:12:57

通过基准测试,我发现QList< WFM* >比QList< WFM >更好。

为什么是

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
QList< WFM > *qlist = new QList< WFM >();
WFM wfmobj;
wfmobj.fwhm2=5;
wfmobj.sens2=6;
wfmobj.fwhm=7;
wfmobj.sens=5;
wfmobj.nAmplitude=3;
qlist->append(wfmobj);

更多的内存消耗

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
QList< WFM* > *qlist = new QList< WFM* >();
WFM *wfmobj = new WFM();
wfmobj->fwhm2=5;
wfmobj->sens2=6;
wfmobj->fwhm=7;
wfmobj->sens=5;
wfmobj->nAmplitude=3;
qlist->append(wfmobj);

?也许我错过了什么。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16594128

复制
相关文章
2.1 C++ STL 数组向量容器
Vector容器是C++ STL中的一个动态数组容器,可以在运行时动态地增加或减少其大小,存储相同数据类型的元素,提供了快速的随机访问和在末尾插入或删除元素的功能。
微软技术分享
2023/10/11
2030
2.1 C++ STL 数组向量容器
Vector容器是C++ STL中的一个动态数组容器,可以在运行时动态地增加或减少其大小,存储相同数据类型的元素,提供了快速的随机访问和在末尾插入或删除元素的功能。
微软技术分享
2023/08/16
2080
多维数组追加,修改,查询,删除
找到指定元素进行修改,查询,删除,追加,和一维数组操作实际一样,关键找到需要修改多维数组需要修改元素的位置。修改代码演示:
十月梦想
2018/08/29
1.5K0
使用NPOI导出,读取EXCEL(可追加功能)
使用NPOI导出,读取EXCEL,具有可追加功能 看代码 1 using System; 2 using System.Collections.Generic; 3 using System.Text; 4 using System.IO; 5 using System.Data; 6 using NPOI.SS.UserModel; 7 using NPOI.XSSF.UserModel; 8 using NPOI.HSSF.UserModel; 9 10 name
冰封一夏
2019/09/11
1.9K0
原 荐 JS数组追加数组采用push.app
JS数组追加数组没有现成的函数,这么多年我已经习惯了a.push.apply(a, b);这种自以为很酷的,不需要写for循环的写法,一直也没遇到什么问题,直到今天我要append的b是个很大的数组时才遇到了坑。 a = new Array();      b = new Array(125624);                      a.push.apply(a, b); 以上的代码在mac的chrome下抛出了如下的异常 Uncaught RangeError: Maximum call sta
HT_hightopo
2018/06/05
2.5K0
JS数组追加数组采用push.apply的坑
本文讲述了一个JS数组在追加数组时采用push.apply的坑,以及在遇到大数组时如何避免这个坑。作者通过实际例子分析了在遇到大数组时采用forEach方法代替apply方法的好处,并建议在实际开发中尽量使用forEach方法。同时,作者提醒开发者不要将花哨的用法用于实战,而是应该多走老实路线,避免遇到异常和性能问题。
HT for Web
2018/01/03
3.7K0
JS数组追加数组采用push.apply的坑
git上传本地文件到仓库(可追加)
1、(进入你需要上传的文件(夹)所在的文件夹)通过命令 git init 把这个目录变成git可以管理的仓库
里克贝斯
2021/05/21
2.4K0
c++数组,c++获取数组元素个数
(4).c++获取数组元素个数,通过sizeof计算数组总大小,再计算单个元素的类型的总大小,然后用数组的总大小/元素类型的大小即可
高久峰
2023/06/23
3800
Python追加Excel追加数据
前面我分享了 Excel 的读写:Python 实现 Excel 的读写操作:https://bornforthis.cn/column/pyauto/auto_base05.html
AI悦创
2022/07/17
2.9K0
c++ 数组
数组就是一组元素的内存位置,各个内存位置可以存储相同数据类型的数据项,而我们可以用相同的变量名引用所有的内存地址 初始化数组 int myA[5]={1,2,3,4,5}; 也可以这样 int myA[5]={1,2,3} ; //这样前3个值是有初始值的,后2个是默认值0 也可以为所有的元素一同初始化值 int myA[5]={3}; 还可以省略数组的长度,数组的元素数量就是数组的长度 int MyA[] ={1,2,3}; 使用for循环数组 for(int v : MyA) {   cout<<v<<
lpxxn
2018/01/31
7290
C++ 数组
数组的声明并不是声明一个个单独的变量,比如 number0、number1、...、number99,而是声明一个数组变量,比如 numbers,然后使用 numbers[0]、numbers[1]、...、numbers[99] 来代表一个个单独的变量。数组中的特定元素可以通过索引访问。
爱学iOS的小麦子
2022/12/09
6170
【C++】容器类_容器迭代器
C++中的容器类对比起其它语言,无论是《【Python】容器类》(点击打开链接),还是《【Java】Java中的Collections类——Java中升级版的数据结构》(点击打开链接)的容器类都没有C++中的容器复杂。且不说C++像Java一样,不能如同Python与php的数组,天生就是可变,不定长,越界就出现问题。C++中的容器,虽然与Java一样同样有List与Map,但是,其提供的封装方法非常少,甚至连一些简单的、最常用的增删改查都要自己去实现。
全栈程序员站长
2022/10/03
6670
【C++】容器类_容器迭代器
c++容器类_类的容器
首先,我们必须理解一下什么是容器,在C++ 中容器被定义为:在数据存储上,有一种对象类型,它可以持有其它对象或指向其它对像的指针,这种对象类型就叫做容器。很简单,容器就是保存其它对象的对象,当然这是一个朴素的理解,这种“对象”还包含了一系列处理“其它对象”的方法,因为这些方法在程序的设计上会经常被用到,所以容器也体现了一个好处,就是“容器类是一种对特定代码重用问题的良好的解决方案”。
全栈程序员站长
2022/11/04
8310
C++:数组与多维数组
数组与vector类似,可以储存固定大小、类型相同的顺序集合,但是在性能和灵活性的权衡上与vector不同。并且元素应为对象,所以不存在引用的数组,但是存在数组的引用。与vector不同的是,数组的大小确定不变,不能随意向数组增加元素。如果不清楚元素的确切个数,请使用vector。定义数组的时候必须指定数组的类型,不允许使用 auto 关键字由初始值的列表推断类型。
用户7886150
2021/02/03
2K0
DDOS Deflate防轻型DDOS***
DDoS deflate是一款免费的用来防御和减轻DDoS***的脚本。它通过netstat监测跟踪创建大量网络连接的IP地址,在检测到某个结点超过预设的限 制时,该程序会通过APF或IPTABLES禁止或阻挡这些IP.
三杯水Plus
2018/11/14
3.2K0
python写文件追加 按行追加_python 追加写入
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
全栈程序员站长
2022/11/07
3.6K0
LeetCode 2195. 向数组中追加 K 个整数(贪心)
给你一个整数数组 nums 和一个整数 k 。 请你向 nums 中追加 k 个 未 出现在 nums 中的、互不相同 的 正 整数,并使结果数组的元素和 最小 。
Michael阿明
2022/11/26
6190
c++之数组
所谓数组:就是一个集合,里面存放着相同类型的数据元素。 特点:里面存放的数据具有相同的数据类型;数组是由连续的内存位置组成的。 1.一维数组的定义 三种方式: 数组类型 数组名[数组长度]; 数组类型 数组名[数组长度] = {值1,值2,...} 数组类型 数组名[] = {值1,值2,...} int a[3]; a[0] = 1; a[1] = 2; a[2] = 3; int b[] = { 1,2,3 }; int c[4] = { 1,2,3,4
西西嘛呦
2020/08/26
4630
C++容器的分类
set/multiset: value是key,mutil表示value的值可以重复
ocean@32
2022/11/04
3440
现代C++之容器
本节将深入学习现代C++实战30讲中的第4节与第5节容器所提到的内容。正文中的一些文字直接引用自上面。
公众号guangcity
2019/12/30
1K0

相似问题

MVVM轻型IOC容器示例

10

轻型C++图像库

23

与轻型容器(码头)相比,VM的优势

12

在c++中追加结构数组

11

C++容器集+数组功能

22
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文