c++ - 如何在 C++ 中动态扩展数组? {就像 vector 中的}

标签 c++ arrays dynamic expand

可以说,我有

int *p;
p = new int[5];
for(int i=0;i<5;i++)
   *(p+i)=i;

现在我想向数组中添加第 6 个元素。我该怎么做?

最佳答案

你必须重新分配数组并复制数据:

int *p;
p = new int[5];
for(int i=0;i<5;i++)
   *(p+i)=i;

// realloc
int* temp = new int[6];
std::copy(p, p + 5, temp); // Suggested by comments from Nick and Bojan
delete [] p;
p = temp;

关于c++ - 如何在 C++ 中动态扩展数组? {就像 vector 中的},我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1350630/

相关文章:

c# - 如何在类型变量中创建任何类型的字典?

.net - 使用 .Net 反序列化 JSON 中的动态类型

c++ - 使用内部函数提取和移位奇数/偶数位

c++ - 多线程服务器在一个线程中处理多个客户端

c++ - 模板参数的访问限制

c++ - 当操作返回 0.#INF 时,我可以得到异常吗?

arrays - Excel VBA 搜索大数组

arrays - python中有可变的二进制数组吗?

python - 在 Python 中使用 eval?

ruby - 使用索引数组查找数组元素 (Ruby)