我有一个类成员变量为const std::vectorstd::string类型,因为是const,所以只能在初始化列表中进行赋值,其中的string值不是可见的ASCII字符,需要通过16进制字节数组的方法来构造string,我的写法如下:
class TestVector {
public:
TestVector();
void print() {
std::cout << mv[0] << std::endl;
for (auto& v : mv) {
for (auto& c : v) {
std::cout << std::hex << std::setw(2) << std::setfill('0') << int(c)<<" ";
}
std::cout << std::endl;
}
}
private:
const std::vector<std::string> mv;
};
TestVector::TestVector()
:mv({
std::string("123"),//这句打印正常
std::string({0xAA, 0x38}, 2)//这句为空
})
{
}
编译没有异常,可运行时为什么mv[1]为空?正确的写法是什么?求指教,谢谢