我正在使用一个库,它接受数据作为 vector
的 char
s。我需要将 string
传递给图书馆。
我考虑使用 std::vector
接受迭代器来执行转换的构造函数 - 但想知道是否有更好的方法?
/*Note: json_str is of type std::string*/
const std::vector<char> charvect(json_str.begin(), json_str.end());
原文由 Homunculus Reticulli 发布,翻译遵循 CC BY-SA 4.0 许可协议
不,这就是这样做的方法,直接用字符串中的数据初始化向量。
正如@ildjarn 在他的评论中指出的那样,如果出于某种原因您的数据缓冲区需要以空值终止,您需要使用
charvect.push_back('\0')
显式添加它。另请注意,如果您想重用缓冲区,请使用带迭代器的
assign
成员函数。