如何使用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
这不起作用,所以我尝试了以下方法:
#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
在构造函数中,我尝试将其初始化为:
map::map()
{
this->my_vec(100, std::vector<color>(100));
}
但是我收到一个错误:“表达式不能用作函数”
正如您刚刚指定的C ++ 11一样,类内初始化可能正是您想要的:
private:
std::vector<std::vector<color>> my_vec = std::vector<std::vector<color>>(100, std::vector<color>(100));
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句