gpt4 book ai didi

c++ - 将 boost::array 复制到 std::string

转载 作者:可可西里 更新时间:2023-11-01 18:08:20 25 4
gpt4 key购买 nike

我正在尝试 cvopy boost::array<char>std::string .

boost::array<char, 1024> _buffer;
std::string data;
std::copy(_buffer.begin(), _buffer.begin()+bytes_transferred, data.begin());

这是行不通的。所以我稍微改变了一下。

char _buffer[1024];
std::string data;
std::copy(_buffer, _buffer+bytes_transferred, data.begin());

第二个也不起作用。

最佳答案

这里的问题是 copy 假定您正在写入的数据的空间已经存在;它不会为您创建任何新房间。因此,上述两段代码都会导致未定义的行为,因为您要将字符复制到之前未预留空间的位置。

最好的方法是使用 string 构造函数:

boost::array<char, 1024> _buffer;
std::string data(_buffer.begin(), _buffer.end());

char _buffer[1024];
std::string data(_buffer, _buffer + 1024);

这会将字符串初始化为存储在数组中的数据的拷贝。

希望这对您有所帮助!

关于c++ - 将 boost::array<char> 复制到 std::string,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11040335/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com