c++ - 如何将 const uint8_t [] 转换为 std::string?
问题描述
下面的代码产生一个错误,
void emitData(const uint8_t data[], size_t size)
{
std::string encodedMessage(data, size);
}
错误,
no instance of constructor "std::__2::basic_string<_CharT, _Traits, _Allocator>::basic_string [with _CharT=char, _Traits=std::__2::char_traits<char>, _Allocator=std::__2::allocator<char>]" matches the argument list -- argument types are: (const uint8_t *, size_t)
解决方案
使用将两个迭代器作为参数的重载构造函数:开始和结束迭代器值。简单的指针就可以解决问题:
std::string encodedMessage{data, data+size};
推荐阅读
- jquery - 使用 jQuery ajax 从客户端调用时服务器代码未触发
- android - 为什么在为 Android 编译 FFmpeg 时会出现“错误:无效指令助记符”?
- linux - sed 用多行文件或变量替换行
- sql - Oracle SQL 从数字字段中找出序号
- ios - 如何让 UIView 检测父级比例的变化?
- python - AttributeError:“SelectorList”对象没有“替换”属性
- c# - .NET 4.x 与 .NET 3.5 相比更改了小数点 - 如何解决?(统一)
- google-apps-script - 以编程方式访问 google-sheets-api '插入注释' 注释
- excel - 错误:无效或不合格 - VBA 复制粘贴
- sql - 基于更新表的动态删除