我正在制作一个用于图像处理的三维数组 - X 和 Y 维度,然后是第三个维度,因为每个像素都没有一个值,而是 (bitsPerPixel/8) 值。
坦率地说,我不太精通 C++,但相机的 API 严格来说是 C++,所以我想在出发前咨询更熟练的人并问“这对吗?”:
vector<vector<vector<int>>> mask(m_nSizeX, vector<vector<int>>(m_nSizeY, vector<int>(m_nBitsPerPixel / 8)));
如果您有 C++11 支持,那么可以。
如果没有,您的模板中需要一些额外的空格:
vector<vector<vector<int> > >
代替
vector<vector<vector<int>>>
等等...
虽然我个人不会使用 avector
作为最后一个值,而是使用结构。
是的,定义是正确的。至于参数我不能说,因为我看不到你的标题
作为一般做法,我总是在类之前使用命名空间名称,所以我从不这样做:
using namespace std;
vector<int> numbers;
but instead
std::vector<int> numbers
这只是为了让我更容易阅读和遵循错误此外,如果您打算传递这个 3D 向量,那么您可能还需要传递以定义向量的分配器。但这取决于你想做什么