声明具有C 尺寸数量的多维矢量

Declaring multidimensional vector with variable number of dimensions in C++

本文关键字:声明      更新时间:2023-10-16

我正在尝试声明具有尺寸数量(用户输入)的多维向量。

这是我拥有的:

#include <vector>
#include <algorithm>
#include <iostream>
using namespace std;
vector< double > data;
int main() {
    int numberDimensions = 4;
    for (int it = 0; it < numberDimensions; it++){
      // Nor sure what to put here
    }
    return 0;
}

另一个解决方案是在开始时使用if语句,但我想知道是否存在另一个解决方案?

#include <vector>
#include <algorithm>
#include <iostream>
using namespace std;
int main() {
    int numberDimensions = 4; 
    if (numberDimensions==0)
        cout << 'error' << endl;
    else if (numberDimensions==1)
         vector< double> data;
    else if (numberDimensions==2)
         vector< vector< double> > data;
    else if (numberDimensions==3)
         vector< vector< vector< double> > > data;
    else if (numberDimensions==4)
         vector< vector< vector< vector< double> > > > data;
    return 0;
}

感谢您的任何建议,

,如下所述的是我遵循的解决方案:

#include <vector>
#include <algorithm>
#include <iostream>
using namespace std;
vector< double > data;
int main() {
    std::vector<int> parameter1 {34,23,58};
    std::vector<int> parameter2 {1,2,3};
    data = vector< double > (parameter1.size()*parameter2.size());
    calculateResult(data);
   // If I want to access the result for Parameter1 = 58 and Parameter = 2 I do:
    int index1 = 2
    int index2 = 1
    double selectedResult = data[index1*parameter1.size()+index2];
    return 0;
}