向量的两倍到一个向量字节

Vector of double to a vector bytes

本文关键字:向量 一个 字节 两倍      更新时间:2023-10-16

我有一个std::vector<double>,需要使用一个需要const vector<uint8_t>的库。我用枚举指定库的数据类型。

我是否可以完全避免复制数据,并让字节向量在内部引用与双向量相同的数据?由于字节向量是const,并且双向量在字节向量的生存期内不会更改,因此看起来非常安全。有很多数据,所以复制它真的不是一个选择。

如果你的"字节向量"实际上是一个字节向量,那么你就有机会了,因为你可以合法地将任何东西作为char数组进行检查。然而,uint32_ts不是字节,当然也不是chars。所以,不,如果没有可怕的黑客魔法,你基本上无法做到这一点,因为它的安全性将完全取决于实现。

无论哪种方式,都不能使用向量类型:必须强制转换并传递std::vector::data()的结果,即指针。

很抱歉,我不得不建议你重新审视一下你的设计。如果你使用的库真的采用了一个整数向量,而这个向量实际上应该是一个二重向量,那么它的开发人员会让你陷入尴尬的境地。