Vector与动态数组?

nestmd 2009-04-20 06:59:45
动态数组怎么样像vector一样,动态添加元素呢?
...全文
118 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
yshuise 2009-04-21
  • 打赏
  • 举报
回复
比如:char* str = (char*)malloc(len);
if(index >= len){
len = 2*len;
str = realloc(str,len)
}

Qlaiaqu 2009-04-21
  • 打赏
  • 举报
回复
vector内部就是一个数组,当空间不够了,再分配一个更大的空间,然后将数据拷贝过去,这其实就是动态数组实现的.
yjwx19 2009-04-21
  • 打赏
  • 举报
回复
我猜楼主说的是
int x[];
但是好像vector 的名字叫动态数组。
ljhiiiiiiii 2009-04-21
  • 打赏
  • 举报
回复
通常动态数组的策略是:
1 建立一个初始大小,通常为3到5;
2 当添加新元素时,是以复制的形式添加的;
3 当现有空间不够的时候,重新分配新内存,并拷贝所有现有的元素到新的内存区,再添加新元素。
Jinhao 2009-04-21
  • 打赏
  • 举报
回复
什么叫动态数组?
yjwx19 2009-04-21
  • 打赏
  • 举报
回复
这个,好像要不停的拷贝吧,不是很清楚,等高人
liqianfu0214 2009-04-21
  • 打赏
  • 举报
回复
动态数组是: 首先申请一块固定大小内存. 然后添加新元素时,是一个一个拷贝到内存里,当现有空间不够的时候,重新申请内存,并拷贝所有现有的元素到新的内存区,再添加新元素。有的时候要考虑深拷贝和浅拷贝。
liang118038liang 2009-04-21
  • 打赏
  • 举报
回复
动态数组怎么样像vector一样,动态添加元素呢?

如果要像vector一样的话就比较复杂了,基本思路楼上几位说得很清楚了!
liang118038liang 2009-04-21
  • 打赏
  • 举报
回复
楼主说的是可变数组吧? 要C99才支持的,具有自动生存周期(也就是说,必是定义发生在语句块内,并且不具有static修饰符).
一般在函数里如:
void func(int n)
{
int x[n*2];
}

每次调用会根据参数n来定义x[]的长度.
x[]一旦定义,后面就不能修改长度的.

65,211

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧