C++ 数组,如何在同一数组中添加一行新的值

c++ arrays, how to add a new row of values in the same array?

本文关键字:数组 一行 C++ 添加      更新时间:2023-10-16

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

假设数组中已经有一行值,您需要添加第二行值但没有添加到第一行,您将如何放入大括号和逗号,用户是否将其放入,或者是否有会自动放入护腕和逗号

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

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

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

div class="answers>

如果你热衷于使用 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});
}

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

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]等)