gpt4 book ai didi

c++ - 如何使用用户输入变量制作二维数组?

转载 作者:行者123 更新时间:2023-12-01 14:42:31 24 4
gpt4 key购买 nike

我当时在一个项目中工作,到目前为止一切都运行顺利

int Get_floors()
{
cout << "Enter how many floors does the stablishment have" << endl;
int floors;
cin >> floors;

cout << "Enter how many places does each floor have" << endl;
int places;
cin >> places;

constexpr int floorsc = floors;
constexpr int placesc = places;

bool lugs[floorsc][placesc];
}
我试图用用户设置的列和行创建二维,但是它要求变量 floorsplaces保持恒定。

最佳答案

数组大小必须是编译时常量,但不是。所以这:

 bool lugs[floorsc][placesc];
实际上是 可变长度数组,它是 not part of the standard C++。将用户输入写为 constexpr不会评估它们的编译时间。
由于仅在运行时才知道用户输入,因此您需要在运行时创建一些内容,并且(内存,增长等)管理也在运行时进行。
标准库中的最佳候选者是 std::vector
简而言之,您可能会遇到以下情况:
#include <vector>  // std::vector

int Get_floors()
{
std::cout << "Enter how many floors does the stablishment have" << std::endl;
int floors; std::cin >> floors;

std::cout << "Enter how many places does each floor have" << std::endl;
int places; std::cin >> places;

// vector of vector bools
std::vector<std::vector<bool>> lugs(floors, std::vector<bool>(places));

return {}; // appropriate return;
}

当您了解了 std::vector以及 std::vectorstd::vector的缺点后,您可以尝试提供一个类,其作用类似于2d数组,但内部仅使用 std::vector<Type>。这是一个 example which might be helpful in that case(信用 @user4581301)。
另外,阅读以下内容可能会很有趣:
Why isn't vector<bool> a STL container?

作为旁注, do not practice with using namespce std;

关于c++ - 如何使用用户输入变量制作二维数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62645802/

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