【问题标题】:How would you limit a buffer size and also return the buffer limit in c++?您将如何限制缓冲区大小并返回 c++ 中的缓冲区限制?
【发布时间】:2015-10-20 22:49:06
【问题描述】:

我知道在 Java 中您使用 Bytebuffer .limit() 但我不确定如何在 c++ 中执行此操作。谢谢! ☺

下面是部分代码:

float _proj[16];
float _projb[1];

//this->_proj.flip().limit(16);
swap(_proj, _projb);
this->_proj.get(this->proj);

我使用 std::swap 方法而不是翻转,因为 C++ 中没有 ByteBuffer。

【问题讨论】:

  • C++ 本身没有“字节缓冲区”。 This question 有一些建议的替代方案。
  • 这取决于您使用什么作为缓冲区。请给我们更多关于你在做什么的背景。
  • @Galik 希望改变有所帮助!

标签: java c++ buffer limit bytebuffer


【解决方案1】:

一些相近的替代品是std::vectorstd::array

如果您想使用字节数组,通常是uint8_t,您需要将数组传递给函数,以及数组中的容量和元素数量

问题是当数组被传递给函数时,数组衰减到指向第一个元素的指针,没有任何容量信息。

没有任何工具可以阻止您索引超出数组的限制(容量)。这就是为什么std::vector 是更安全的选择。

【讨论】:

    猜你喜欢
    • 2022-11-11
    • 1970-01-01
    • 2016-12-30
    • 2021-02-25
    • 1970-01-01
    • 2021-12-10
    • 1970-01-01
    • 1970-01-01
    • 2020-01-09
    相关资源
    最近更新 更多