[英]Passing a Vector of a Vector with variables to a function
我试图创建一个带有大小变量的数组(即array [x] [y]),这是行不通的。 我偶然发现了一条建议使用向量的向量的帖子:
vector<vector<int> > grid(GetGridXComponent(), vector<int>(GetGridYComponent()));
GetGridXComponent()和GetGridYComponent()从类中检索私有变量。
该代码在函数内部起作用,但是我需要能够在类外部访问向量“ grid”。 为此,我尝试创建一个公共实例:
vector<vector<int> > grid(GetGridXComponent(), vector<int>(GetGridYComponent()));
但是,当然,GetGridXComponent()和GetGridYComponent()无法工作,因为它认为我正在创建一个函数,并希望我为GetGridXComponent()声明类型。
有办法解决吗? 我是否使它变得比需要的难? 提前致谢。
Class Simulator
{
private:
int s_iGridXComponent;
int s_iGridYComponent;
public:
Simulator();
~Simulator();
int GetGridXComponent();
int GetGridYComponent();
void Function(vector<vector<int> >&);
vector<vector<int> > pelletGrid(GetGridXComponent(), vector<int>(GetGridYComponent()));
}
void Simulator::Function(vector<vector<int> > &grid)
{
code;
}
假设您只是试图创建一个名为pelletGrid
的类成员,该类成员是一个2D向量,则它应该类似于:
class Simulator
{
private:
int s_iGridXComponent;
int s_iGridYComponent;
std::vector<std::vector<int>> pelletGrid;
public:
Simulator(const int x, const int y) :
s_iGridXComponent(x),
s_iGridYComponent(y),
pelletGrid(x, std::vector<int>(y))
{ }
void CreateGrid (const int x, const int y)
{
s_iGridXComponent = x;
s_iGridYComponent = y;
pelletGrid = std::vector<std::vector<int>>(x, std::vector<int>(y));
}
};
您可以使用构造函数或自定义方法来初始化2D向量,具体取决于您何时知道X / Y尺寸。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.