gpt4 book ai didi

线性内存缓冲区的 C++ 接口(interface)

转载 作者:行者123 更新时间:2023-11-30 05:19:48 29 4
gpt4 key购买 nike

我有一个大型数据集,我想将其保存在连续的线性内存缓冲区中。此内存缓冲区采用 STL vector 的形式。

数据集按层次结构分组:

increment--->image number--->pixel number

有 100 个增量,每个增量有 10 张图片,每张图片有 320x240 像素。

除了执行以下(钝的)方式来访问线性内存缓冲区的特定像素元素之外:

buffer[increment*image_number*320*240 + column_number*240+row_number]

是否有更直观的界面来访问此缓冲区的特定像素元素,同时保持数据连续?

最佳答案

你可以写一个简单的接口(interface)重载operator():

PixelData& operator()(size_t increment, size_t image_number, size_t row_number, size_t column_number)
{
return buffer[increment*image_number*320*240 + column_number*240+row_number];
}

这样,可以通过以下方式访问像素:

dataset(increment, img, row, column);

关于线性内存缓冲区的 C++ 接口(interface),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40962552/

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