我想初始化一个std::向量,使其具有特定的长度。在.hpp文件中,我使用
#include <vector>
class foo
{
foo(){};
~foo(){};
std::vector<double> pressure (4,0); //vector 4 elements = 0
void readPressure()
{
pressure.at(0) = 1;
pressure.at(1) = 2;
pressure.at(2) = 3;
pressure.at(3) = 4;
}
...
};
但我得到了错误:
error: expected identifier before numeric constant
std::vector<double> pressure(4,0);
^
error: expected ',' or '...' before numeric constant
我读到这可能是由于没有使用C++11,但我在我的makefile 中指定了
set(CMAKE_CXX_STANDARD 14)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_CXX_EXTENSIONS OFF)
set(CMAKE_CXX_FLAGS_RELEASE "-O3")
我正在树莓4上编译,g++版本是8.3
***编辑.hpp文件
默认成员初始值设定项(由于C++11(仅支持大括号和等号初始值设定。例如
class foo
{
std::vector<double> pressure = std::vector<double>(4,0); //vector 4 elements = 0
...
};
BTW:我们不能将braked初始化器用作std::vector<double> pressure{4,0};
,因为它会初始化包含两个值为4
和0
的元素的vector
,这不是您想要的。