将std :: string转换为std :: vector< char> [英] Converting std::string to std::vector<char>

查看:646
本文介绍了将std :: string转换为std :: vector< char>的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我使用的库接受数据作为向量的 char 。我需要传递字符串到库。

I am using a library which accepts data as a vector of chars. I need to pass a string to the library.

我想使用 std: :vector 构造函数,它接受迭代器来执行转换 - 但是想知道是否有更好的方法。

I think about using std::vector constructor which accepts iterators to carry out the conversion - but wondered if there is a better way of doing it?

/*Note: json_str is of type std::string*/
const std::vector<char> charvect(json_str.begin(), json_str.end()); 


推荐答案

不,这是方法,直接初始化

Nope, that's the way to do it, directly initializing the vector with the data from the string.

由于@ildjarn在他的评论中指出,如果无论什么原因你的数据缓冲区需要以null结束,你需要显式添加 charvect.push_back('\0')

As @ildjarn points out in his comment, if for whatever reason your data buffer needs to be null-terminated, you need to explicitly add it with charvect.push_back('\0').

重用缓冲区,使用需要迭代器的分配成员函数。

Also note, if you want to reuse the buffer, use the assign member function which takes iterators.

这篇关于将std :: string转换为std :: vector&lt; char&gt;的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆