0

我正在制作一个用于图像处理的三维数组 - X 和 Y 维度,然后是第三个维度,因为每个像素都没有一个值,而是 (bitsPerPixel/8) 值。

坦率地说,我不太精通 C++,但相机的 API 严格来说是 C++,所以我想在出发前咨询更熟练的人并问“这对吗?”:

vector<vector<vector<int>>> mask(m_nSizeX, vector<vector<int>>(m_nSizeY, vector<int>(m_nBitsPerPixel / 8)));
4

2 回答 2

7

如果您有 C++11 支持,那么可以。

如果没有,您的模板中需要一些额外的空格:

vector<vector<vector<int> > >

代替

vector<vector<vector<int>>>

等等...

虽然我个人不会使用 avector作为最后一个值,而是使用结构。

于 2012-07-18T09:36:57.853 回答
0

是的,定义是正确的。至于参数我不能说,因为我看不到你的标题

作为一般做法,我总是在类之前使用命名空间名称,所以我从不这样做:

using namespace std;
vector<int> numbers;

but instead

std::vector<int> numbers

这只是为了让我更容易阅读和遵循错误此外,如果您打算传递这个 3D 向量,那么您可能还需要传递以定义向量的分配器。但这取决于你想做什么

于 2012-07-18T09:40:19.070 回答