我想初始化一个 std::vector 以具有特定的长度。 在我使用的 .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文件
最佳答案
Default member initializer (C++11 起) 仅支持大括号和等号初始值设定项。例如
class foo
{
std::vector<double> pressure = std::vector<double>(4,0); //vector 4 elements = 0
...
};
顺便说一句:我们不能将大括号初始化程序用作 std::vector<double> pressure{4,0};
,因为它会初始化 vector
包含 2 个值为 4
的元素和0
,这不是您想要的。
关于c++ - 编译器无法识别 std::vector 的成员初始值设定项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64222169/