【问题标题】:How to add something at the end of a c++ array? [closed]如何在 c++ 数组的末尾添加一些东西? [关闭]
【发布时间】:2013-02-04 10:01:53
【问题描述】:

我有一个数组,但我想在最后添加一些东西,而不覆盖它已经存在的任何数据。它必须是一个数组而不是一个向量,因为它是一个赋值。

【问题讨论】:

  • 如何定义数组?你用的是标准c吗?或 std:: 某事或其他?
  • @thang 我没有使用 std::
  • 那么喜欢 int x[100]?我认为您应该发布一些示例代码。有很多方法可以做数组......很难说出你想要做什么。
  • @thang 好吧,我的数组是 x[10] 个字符长。
  • @MokammelHossainSanju:如果它是像x[10] 这样的固定大小的数组,你当然不能扩展它。您需要使用new[] 动态分配您的数组;当它需要增长时,分配一个新的,复制数据,并删除旧的。

标签: c++ arrays


【解决方案1】:

从 cmets 看来,您似乎不想添加到数组的末尾,而是要部分填充数组并跟踪您写入的数据量。您只需要一个变量来跟踪它:

char array[10];
size_t size = 0;

// Add characters:
array[size++] = 'H';
array[size++] = 'e';
array[size++] = 'l';
array[size++] = 'l';
array[size++] = 'o';

你需要确保你永远不会超出数组的末尾,否则你会破坏其他内存。

【讨论】:

    【解决方案2】:

    C++ 数组不可扩展。您要么需要使原始数组更大并在单独的变量中保留有效元素的数量,要么创建一个新的(更大的)数组并复制旧内容,然后是要添加的元素。

    【讨论】:

    • 实际上我认为我的问题是错误的,我的问题应该是,“我的数组有 10 个字符长。其中 5 个有数据。我将把新数据放入数组中,以便新的数据总是添加在数组的末尾”。
    【解决方案3】:

    您可以创建一个大于第一个的数组并复制所有元素,然后将新元素添加到数组的末尾。

    或者,您可以将数组转换为向量,添加一个元素,然后将向量转换回数组。 看一眼: How to convert vector to array in C++, What is the simplest way to convert array to vector?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-10-20
      • 1970-01-01
      • 1970-01-01
      • 2021-02-07
      相关资源
      最近更新 更多