将 std::string 转换为 std::vector<char>

新手上路,请多包涵

我正在使用一个库,它接受数据作为 vectorchar 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 许可协议

阅读 1.3k
2 个回答

不,这就是这样做的方法,直接用字符串中的数据初始化向量。

正如@ildjarn 在他的评论中指出的那样,如果出于某种原因您的数据缓冲区需要以空值终止,您需要使用 charvect.push_back('\0') 显式添加它。

另请注意,如果您想重用缓冲区,请使用带迭代器的 assign 成员函数。

原文由 Xeo 发布,翻译遵循 CC BY-SA 3.0 许可协议

你可以这样做。

   std::string s = "Hello World!";
    std::vector<char> v(s.begin(), s.end());
    for (const char &c: v)
        std::cout << c;

原文由 jian 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题