C++ 数组,如何在同一数组中添加一行新的值
c++ arrays, how to add a new row of values in the same array?
如何根据用户输入或 CIN 在数组中创建一行新的值?
假设数组中已经有一行值,您需要添加第二行值但没有添加到第一行,您将如何放入大括号和逗号,用户是否将其放入,或者是否有会自动放入护腕和逗号
的东西int test [] = { 1, 21, 771, 410, 120711 },
{ 1, 2, 3, 4, 5 };
如果没有非常糟糕和肮脏的技巧,这是不可能的。最好使用列表或向量(最接近数组)。另一种可能性是使用指针并扩展它创建一个临时内存,复制旧数据,然后添加新数据。
无法在保留数组内容的同时更改数组的大小。更改数组大小的唯一方法是使用 new
运算符将动态内存分配给指针,但这会破坏数组以前保存的任何数据。如果你想拥有一个可重新调整大小的数组,你可能应该使用 std::vector.
<</p>
如果你热衷于使用 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]
等)
相关文章:
- C++找出覆盖同一行的数组
- 如何让字符数组在一行而不是多行中打印出来?
- 在 c++ 中将uint8_t数组转换为字符串以在一行中打印
- 在一行中初始化和引入数组向量的正确方法?
- 将上一行添加到 char* 数组中的 char* 常量
- 将 ifstream 文件和每一行读取到数组中
- 在 C++ 中搜索 2D 数组以查看一行/列是否与另一行/列相同
- 与 C++ 中一行中的用户输入数组元素相关的问题
- 将地址返回到 2D 数组中的一行值的函数
- C ++试图找到数组中每一行的最大值
- 如何在一行中从不同的变量(数据类型)创建一个字符数组?
- C++ ->尝试逐字阅读一行文本。如何使指针等效于用于存储输入的当前二维数组
- C++ 哪些列在 2 dim 数组中的每一行都有 1
- 按一行对2D数组进行排序
- 无法弄清楚为什么只从文件中读取一行矩阵以及为什么我无法将 2D 数组传递给函数
- 打印一行 2D 字符数组 (C++)
- 如何将.txt文件中的多维数组放入代码中,并一次打印一行
- C++ - 将数字表从文件读取到 2D 数组中(仅存储最后一行)
- 在同一行中读取混合输入(字符串/浮点数),并将其存储在数组中
- 如何动态分配二维数组一行在一个时间,列是已知的在c/c++