C++ 我可以使用std::copy复制到stringstream吗
我最近遇到一个例子,我想把C++ 我可以使用std::copy复制到stringstream吗,c++,stl,C++,Stl,我最近遇到一个例子,我想把int64\t值的原始字节放入字符串流中。在C++17中,我可以执行以下操作: uint64_t val = 1984; std::stringstream sstr; sstr << "the byte value is " << std::string_view(reinterpret_cast<char*>(&val), sizeof(decltype(val))); std::copy(reinterpret_cas
int64\t
值的原始字节放入字符串流中。在C++17中,我可以执行以下操作:
uint64_t val = 1984;
std::stringstream sstr;
sstr << "the byte value is " << std::string_view(reinterpret_cast<char*>(&val), sizeof(decltype(val)));
std::copy(reinterpret_cast<const char*>(&tmp_time),
reinterpret_cast<const char*>(&tmp_time) + sizeof tmp_time,
std::back_inserter(sstr));
uint64\u t val=1984;
std::stringstream sstr;
sstr您可以使用
因此,由于std::stringstream
没有定义value\u type
,编译失败。您不需要使用std::copy()
或任何其他算法。您可以使用流自己的方法,例如:
uint64_t val = 1984;
std::stringstream sstr;
sstr << "the byte value is ";
sstr.write(reinterpret_cast<char*>(&val), sizeof(val));
uint64\u t val=1984;
std::stringstream sstr;
有效的sstr(在时限到期时接受)。如果您能解释我推理失败的原因,我将不胜感激。std::back\u inserter
用于提供push\u back()功能的容器。您是否尝试过使用通用插入器
?错误没有名为value\u type的类型
源于编译器找不到适当的迭代器标记
back_insert_iterator<Container> &operator=(typename Container::value_type &&value);
uint64_t val = 1984;
std::stringstream sstr;
sstr << "the byte value is ";
sstr.write(reinterpret_cast<char*>(&val), sizeof(val));