c++ - Int 数组到 C++ 容器
问题描述
我有一些来自int
数组中的源的数据。本质上..
// C interface
typedef struct {
int payload[1024];
int id;
} tData;
// C++ interface
void MyModule::HandleData(tData *data){
this->DoUsefulThingsWithData(data->payload);
}
这是来自以功能样式编写的 C 文件。我现在想获取这些数据并在我的 C++ 模块中使用它。我是将它们全部打包到一个向量中,还是应该继续按原样使用数据?如果我使用向量,我不必将大小传递给DoUsefulThingsWithData
,但是否值得开销?此外,我不完全知道该数据何时会变得无关紧要(范围或释放),因此我应该在继续使用之前将其复制到某些东西中。性能(复制)和大小开销最低的最佳容器是什么?注意:我在 c++ 98
解决方案
我是否将其全部打包到向量中?
是的:
std::vector payload(tData.payload, tData.payload + sizeof(tData.playload));
如果我使用向量,我不必将大小传递给 DoUsefulThingsWithData。
只需使用vector
的data()
成员函数:
this->DoUsefulThingsWithData(payload.data());
推荐阅读
- php - 如何返回原始文本并保持其形状和结构?
- wordpress - 订单状态为待付款时如何减少 WooCommerce 可变产品库存?
- git - 从不同的目录从 Go 获取 Git 状态
- angular - 解决 Angular 循环模块依赖和组件(父子)
- java - 如何启用对 QuestDB docker 容器中文件的日志记录?
- pine-script - 在 plotchar 的帮助下标记线
- c++ - 如何只打印字符串的唯一排列?
- c++ - 套接字编程:是什么导致 select() 系统调用在当前线程执行时不返回?
- c++ - 在 QToolbar 中使用滚动条而不是扩展按钮
- javascript - 如何删除预览图像并从输入类型文件中删除多个?