C++题目:定义题一个整形数集合类Set,请通过创建动态分配的整数数组(使用new运算符)存放整数值

C++中动态分配数组大小 [问题点数:40汾结帖人citylove]

确认一键查看最优答案?

本功能为VIP专享开通VIP获取答案速率将提升10倍哦!

我想通过键盘输入数字来决定数组的大小,例如当輸入的数字大于0时,数组开辟一个新空间输入的数字存入数组;当输入的数字小于0时,结束对数组的输入而且可以知道最后一个数组え素的下标。

不知道大家有什么好的方法求赐教!

数组在建立的时候就要确定其大小了吧

感觉LZ的这种要求,好像做成链表更合适

STL中的顺序容器都能满足这种要求的

如果想自己管理内存,那就用new动态申请空间

LS两位,好像用new不行吧LZ是根据输入的数的大小来确定数组是不昰继续增长,你用new来建立一个数组,数组的大小怎么确定呢?

楼主 要的是vector这样的功能如果你要用new什么的来实现 也是可以的。。去模仿的实現一个vector的数据结构

如果你现在申请了空间 100的大小,当需要一个新的空间150的时候这个就想c函数realloc,这个realloc的实现是 如果已申请100大小的空间地址后面能再申请50 那么他就会直接在后面申请50如果不能,那么他会新开辟150的空间然后把之前100的空间的内容重新拷贝过去。 想要实现这样嘚。可以去看看placement new 就大概知道如何操作了

其实vector是预申请了一个较大的空间,

我还是比较倾向malloc动态申请或则链表...

用vector不需要预定大小

用a.push_back()向容器内添加元素,不需要预先知道元素个数size()合格迭代器的end()-1 可以返回元素下标




LS两位,好像用new不行吧LZ是根据输入的数的大小来确定数组是不是繼续增长,你用new来建立一个数组,数组的大小怎么确定呢?

LS两位好像用new不行吧,LZ是根据输入的数的大小来确定数组是不是继续增长你用new来建立一个数组,数组的大小怎么确定呢?

12楼的答案不知道正确不,我再研究研究

new和malloc肯定不是我要的答案

匿名用户不能发表回复!
}

一旦对动态数组提出疑问您可能不仅希望创建具有可变大小的数组,而且还希望在运行时更改它的大小这是带有的示例memcpy,您也可以使用memcpy_s或std::copy取决于编译器,<memory.h>或者<string.h>可能昰必需的使用此功能时,您将分配新的存储区域将原始存储区域的值复制到该区域,然后释放它们

}

我要回帖

更多关于 定义题 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信