正在从CIN声明动态2D阵列

Declaring Dynamic 2D array from CIN

本文关键字:动态 2D 阵列 声明 CIN      更新时间:2023-10-16

我想更改我在这里找到的游戏TOH这里的代码

我想用它来询问有多少磁盘。。。则如果输入3。然后,我会在代码中的所有数组中将[8]改为[3]。或者还有更好的方法吗?

我一直在研究并发现了这个,但它在2d阵列中不起作用。

如何在这里使用矢量。。将行[8]更改为用户输入。。

struct World{
   int t[3][8];
   int cursor;
   int chosen;
};

其中,我的int main是询问"多少行…"的那个?

请改用std::vector<std::vector<int>>。这将自动处理动态分配。

例如:

#include <iostream>
#include <vector>
int main()
{
    //
    // *** Validation of input omitted: you must do this. ***
    //
    size_t rows;
    std::cout << "Enter number of rows: ";
    std::cin >> rows;
    std::cout << "Enter number of columns: ";
    size_t columns;
    std::cin >> columns;
    std::vector<std::vector<int> > ints(rows, std::vector<int>(columns));
    for (size_t ri = 0; ri < rows; ri++)
    {
        for (size_t ci = 0; ci < columns; ci++)
        {
            std::cout << "Enter value for [" << ri << ", " << ci << "]: ";
            std::cin >> ints[ri][ci];
        }
    }
    for (size_t ri = 0; ri < ints.size(); ri++)
    {
        for (size_t ci = 0, size = ints[ri].size(); ci < size; ci++)
        {
            std::cout << "["
                      << ri
                      << ", "
                      << ci
                      << "]="
                      << ints[ri][ci]
                      << "n";
        }
    }
    return 0;
}