我正在制作一个用于图像处理的三维数组 - X和Y维度,然后是第三维,因为每个像素都没有一个值,但是(bitsPerPixel / 8)值。
我坦率地说我并不精通C ++,但相机的API严格来说是C ++,所以我想在我出发之前先咨询一些技术人员然后问“这是对的吗?”:
vector<vector<vector<int>>> mask(m_nSizeX, vector<vector<int>>(m_nSizeY, vector<int>(m_nBitsPerPixel / 8)));
答案 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矢量,那么您可能还需要传递以定义矢量的分配器。但这取决于你想做什么