1

如何根据用户输入或 cin 在数组中创建新的一行值?

假设数组中已经有一行值,您需要添加第二行值但未添加到第一行,以及如何将大括号和逗号放入,用户是否放入或有什么这将自动将括号和逗号放入

int test [] = { 1, 21, 771, 410, 120711 },
{ 1, 2, 3, 4, 5 };
4

4 回答 4

0

如果没有非常糟糕和肮脏的技巧,这是不可能的。最好使用列表或向量(最接近数组)。另一种可能性是使用指针并对其进行扩展,创建一个临时内存,复制旧数据,然后添加新数据。

于 2012-12-08T03:17:48.693 回答
0

你要求一个二维数组。这是这样声明的:

int test[][5] = {
    {1, 21, 771, 410, 120711},
    {1, 2, 3, 4, 5 },
    // Add more if you want.
};

第一个数组通过 访问test[0],第二个通过test[1]等等。第一个数组的第一个元素是test[0][0],第二个test[0][1]等等。

请注意,这是一个具有静态大小的数组。您无法在运行时更改它。如果您事先知道需要多少行,只需将其声明为:

int test[NUMBER OF ROWS][NUMBER OF COLUMNS];

然后稍后用值填充它。但是你不能改变大小。如果你想要一个完全动态的数组,那么你应该使用一个向量向量:

std::vector< std::vector<int> > test;

然后,您添加行:

test.push_back(std::vector<int>());

并向每一行添加元素:

// Adds a number to the first row.
test[0].push_back(some_int);

访问的方式与使用静态数组(test[0],test[0][0]等)的方式相同

于 2012-12-08T03:20:20.200 回答
0

无法在保留其内容的同时更改数组的大小。改变数组大小的唯一方法是使用new运算符为指针分配动态内存,但这会破坏数组先前保存的任何数据。如果您想拥有一个可调整大小的数组,您可能应该使用std::vector.

于 2012-12-08T03:23:54.123 回答
0

如果您热衷于使用 c++11,您可以使用 std::vector 保留初始化列表,如下所示:

#include <vector>

int main()
{
  // initialise
  std::vector<std::vector<int>> test = { { 1, 21, 771, 410, 120711 },
                                         { 1, 2, 3, 4, 5 } };

  // add new data from user
  test.push_back({9, 8, 7, 6, 5, 4, 3, 2, 1});
}
于 2012-12-08T03:24:22.707 回答