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));