C ++中的三维数组

时间:2012-07-18 09:35:05

标签: c++ image vector

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

我坦率地说我并不精通C ++,但相机的API严格来说是C ++,所以我想在我出发之前先咨询一些技术人员然后问“这是对的吗?”:

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

2 个答案:

答案 0 :(得分:7)

如果你有C ++ 11支持,那么是。

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

vector<vector<vector<int> > >

而不是

vector<vector<vector<int>>>

依旧......

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

答案 1 :(得分:0)

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

作为一般做法,我总是在课前使用命名空间名称 所以我永远不会这样做:

using namespace std;
vector<int> numbers;

but instead

std::vector<int> numbers

这对我来说更容易阅读并遵循错误 此外,如果您打算传递此3D矢量,那么您可能还需要传递以定义矢量的分配器。但这取决于你想做什么