[英]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.