我想要聲明具有可變維度數量(用戶輸入)的多維向量。在C++中聲明具有可變數量維度的多維向量
這裏是我有:
#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;
}
感謝您的任何建議,
嵌套向量不會給你帶來非常不錯的表現。考慮使用變化指數計算的雙打平面向量。 – StoryTeller
您的解決方案不是非常有用。你將無法在這些分支之外使用數據。您需要爲每個分支複製整個應用程序邏輯(建議使用模板)。考慮定義一個大小等於所有維度大小乘積的單個向量。 –
這似乎是一個非常難以解決的問題。也許如果你告訴我們更多關於你正在努力完成的事情,我們可以提供更好的解決方案。 –