c++ - 如何创建一个四维指针数组?

标签 c++ pointers multidimensional-array gurobi

<分区>

我正在尝试创建一个四维指针数组。数组的类型是 Gurobi 类型“GRBVar”。但是,我不确定要使用的语法。

GRBVar**** testArray = new GRBVar*** [numBuses];
        for (int i = 0; i < numBuses; i++) {
            testArray[i] = new GRBVar** [maxRoute];
            for (int j = 0; j < maxRoute; j++) {
                testArray[j] = new GRBVar* [numJobs];
                for (int k = 0; k < numJobs; k++) {
                    testArray[k] = new GRBVar[numJobs];
                }
            }
        }

以上会导致错误。我该如何解决?

最佳答案

从字面上看,您可以像 GRBVar* array[10][10][10][10] 这样创建它, 但最好使用嵌套 std::vector为此,例如 std::vector<GRBVar*> , std::vector<std::vector<GRBVar*>>等等,而且 - 使用别名,比如

using Jobs = std::vector<GRBVar*>;
using Routes = std::vector<Jobs>;
using Buses = std::vector<Routes>;

然后初始化它:

Buses buses;
for (int i = 0; i < numBuses; i++) {
    Routes routes;
    for (int j = 0; j < maxRoute; j++) {
        Jobs jobs;
        for (int k = 0; k < numJobs; k++) {
            jobs.push_nack(new GRBVar);
        }
        routes.push_back(jobs);
    }
    buses.push_back(routes);
}

关于c++ - 如何创建一个四维指针数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57762254/

相关文章:

c++ - 容器迭代器和容器操作

C++ 字符串太大,尾随字符被截断

C++ 代码可以在 CentOS g++ 中编译,但不能在 Visual studio 2008 中编译

c++ - C++中依赖类的生命周期?

c - 函数中的 FILE 指针未更新

php - 如何从多维数组中获取具有特定键/值对的特定数组

c++ - 验证整数是某个枚举类项 (C++11)

C++双指针多态性

Php将数据分解为数组

c++ - 如何使用为构造函数指定的大小来初始化 C++ 中的数组?