如何使用c ++ 11将C++中的向量初始化为构造函数中的某个特定大小?像这样的东西(矢量称为my_vec):
#ifndef MAP_H
#define MAP_H
#include <vector>
struct color
{
int r;
int g;
int b;
};
class map
{
private:
int gridSize;
int verticalNum;
int horizontalNum;
std::vector< std::vector<color> > my_vec(100, vector<color>(100));
public:
map();
~map();
};
#endif // MAP_H
Run Code Online (Sandbox Code Playgroud)
这不起作用,所以我尝试了这个:
#ifndef MAP_H
#define MAP_H
#include <vector>
struct color
{
int r;
int g;
int b;
};
class map
{
private:
int gridSize;
int verticalNum;
int horizontalNum;
std::vector< std::vector<color> > *my_vec;
public:
map();
~map();
};
#endif // MAP_H
Run Code Online (Sandbox Code Playgroud)
在构造函数中,我尝试初始化它,如:
map::map()
{
this->my_vec(100, std::vector<color>(100));
}
Run Code Online (Sandbox Code Playgroud)
但我得到一个错误:"表达式不能用作函数"
正如您刚刚指定的C++ 11,类内初始化可能正是您想要的:
private:
std::vector<std::vector<color>> my_vec = std::vector<std::vector<color>>(100, std::vector<color>(100));
Run Code Online (Sandbox Code Playgroud)