我有一个数组,但我想在最后添加一些内容,而不会覆盖任何已经存在的数据。它必须是一个数组而不是一个向量,因为它是一个赋值。
答案 0 :(得分:11)
从评论中,听起来您不想添加到数组的末尾,而是部分填充数组并跟踪您编写的数据量。你只需要一个变量来跟踪它:
char array[10];
size_t size = 0;
// Add characters:
array[size++] = 'H';
array[size++] = 'e';
array[size++] = 'l';
array[size++] = 'l';
array[size++] = 'o';
你需要确保你永远不会超越数组的末尾,否则你将破坏其他内存。
答案 1 :(得分:4)
C ++数组不可扩展。您需要使原始数组更大并在单独的变量中保持有效元素的数量,或者创建一个新的(更大的)数组并复制旧内容,然后是要添加的元素。
答案 2 :(得分:1)
您可以创建大于第一个的其他数组并复制所有元素,然后在数组末尾添加新元素。
或者你可以将数组转换为vector,添加一个元素然后将vector转换回数组。 看一眼: How to convert vector to array in C++,What is the simplest way to convert array to vector?