簡體   English   中英

將二維向量數組傳遞給 class 構造函數

[英]Passing a 2d array of vector to a class constructor

在我的代碼中,我有一些數據存儲在一個二維向量數組中,我想在另一個 class 中使用它來處理數據,但我找不到這樣做的方法。

這是我嘗試過的示例:

vector<IndividualData> vecArray[5][5]; // The one I want to pass to the class

MyClass::MyClass(vector<IndividualData> data[][5], ...):_data(data)

有什么好的方法嗎?

我也嘗試使用 std::array 但我無法使其工作:

array<array<vector<IndividualData>, 5>, 5> testVec; // Ther one I want to pass to the class

MyClass::MyClass(array<array<vector<IndividualData>, 5>, 5>& data, ...): _data(data)                                                                                      

當我想在 class 中使用它時,我收到以下錯誤:

類型 'array<array<vector, 5>, 5>' 不提供下標運算符

printf("%d\r\n", _data[0][0][0].param);

array<array<vector<IndividualData>, 5>, 5>& _data;

提前感謝您的回復

這對我有用:

using My2DArrayOfVec = std::array<std::array<std::vector<IndividualData>, 5>, 5>;

class MyClass
{
   My2DArrayOfVec _data;
public:
   MyClass(My2DArrayOfVec const& data, ...) : _data(data) {}
   void useIt() const { printf("%d\r\n", _data[0][0][0].param); }
};

通過使用別名,我總是在我的 class 內部和外部使用相同的類型My2DArrayOfVec ,即使我正在試驗。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM