gpt4 book ai didi

c++ - 从输入流中读取 std::array

转载 作者:太空宇宙 更新时间:2023-11-03 10:23:20 25 4
gpt4 key购买 nike

我想完成以下操作(代码不会像写的那样编译,因为 >> 没有为 std::array 重载):

constexpr array<char, 2> MAGIC_BYTES { 40, 23 };

void VerifyMagicHeader(istream& stream)
{
//Read in the bytes that should be the magic bytes
array<char, 2> buffer;
stream >> buffer //This is the line that won't compile;

if (buffer != MAGIC_BYTES)
{/*throw exception here...*/}
}

我知道我可以阅读 char[2]而不是 std::array<char, 2>并让它工作,但它不会那么优雅。这似乎是一个对 std::array 真正有帮助的运算符。有所以我想知道是否有未实现的原因,或者我是否需要自己实现。

最佳答案

它没有作为标准实现,因为没有单一的方法来读取/写入数组一些例子:

  1. 作为二进制字符流
  2. 作为逗号分隔的列表(如果您的字符之一是逗号怎么办?)
  3. 作为空格分隔的列表(如果您的其中一个字符是空格怎么办?)

然后,当您在该数组中添加一个模板类时,它会变得更加复杂。数组的数组怎么写?

出于同样的原因,没有一个 STL 容器定义流运算符。

关于c++ - 从输入流中读取 std::array,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53263743/

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