我希望声明一个结构,比如大小为n = 10,在结构的每个i站点都有一个向量。结构位置中的向量具有不同的大小。
在matlab中,它可以使用struct获得。如何在C ++中完成?
答案 0 :(得分:3)
我认为你要找的是矢量的数组或矢量。
例如:
#include <array>
#include <vector>
#include <iostream>
int main ()
{
std::array<std::vector<int>, 10> Vectors;
for (auto &i : Vectors) //Loop through all 10 vectors in Vectors
{
for (int j=0; j<5; j++) //Push 1, 2, 3, 4, and 5 into each vector
{
i.push_back(j);
}
}
return 0;
}
答案 1 :(得分:0)
struct S {
std::array<std::vector<int>, 10> data;
};
您也可以使用别名:
using arrayOfTenVectors = std::array<std::vector<int>, 10>;
当然int
是一个占位符。您可以将结构或别名设为template
,并在向量内部使用一些T
。