gpt4 book ai didi

c++ - 如何仅使用其中一个维度在2D vector 中插入值?

转载 作者:行者123 更新时间:2023-12-02 10:22:32 24 4
gpt4 key购买 nike

我在搜索如何在2D vector 中插入值时,发现了一个非常简单的答案。

for (int i = 0; i < rows; i++) {
for (int j = 0; j < columns; j++) {
int value;
std::cout << "Value for 2D array at pos(" << i + 1 << ", " << j + 1 << "): ";
std::cin >> value;
arr[i].push_back(value); //<- the answer I found
}
}

我有些困惑,因为如果我只给i的话,如何在(i,j)中插入数字?
即使我在推回该值时未声明它,j是否仍在起作用?

最佳答案

您正在将值添加到数组数组。(arr[i])实际上是一个数组本身。每个i代表一行,每个j代表一列。第一个for循环在行中进行迭代,第二个for循环在列中进行迭代(不过我敢肯定您知道这一点)。如果您想这样,arr[i].push_back(value)实际上是在给arr[i][j]增加值(value)。第一个push_back将值添加到arr[i][0],第二个push_back将值添加到arr[i][1],依此类推。例如,如果您的2D数组为0,则可以使用arr[i][j]。在这种情况下不使用它的唯一原因是,如果您引用arr[i][j],则将出现边界异常,因为索引j尚不存在(push_back创建它)。我希望这是有道理的。我认为解释比代码更有意义,因为您已经有了正确的代码,只需要一个解释。

关于c++ - 如何仅使用其中一个维度在2D vector 中插入值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59494719/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com