我有一个std::vector<double>
,需要使用库const vector<uint8_t>
。我用枚举指定数据库的类型。
无论如何,我是否可以避免完全复制数据并让字节向量在内部引用与双向量相同的数据?由于字节向量是常量,双向量在字节向量的生命周期内不会发生变化,因此看起来非常安全。有很多数据,所以复制它实际上不是一个选择。
答案 0 :(得分:1)
如果你的“字节向量”实际上是一个字节向量,那么你就有机会,因为你可以合法地检查几乎所有的char
数组。但是,uint32_t
不是字节,它们肯定不是char
。所以,不,你基本上不能做到这一点,没有可怕的hacky魔术,其安全将完全取决于实施。
无论哪种方式,你都无法使用矢量类型:你必须投射并传递std::vector::data()
的结果,即一个指针。
抱歉,我不得不建议您重新访问您的设计。如果您正在使用的库采用的是实际上应该是双精度矢量的整数向量,那么它的开发人员会让您陷入尴尬的境地。