因爲數組auxMat是在內存中連續的,你可以直接從內存複製到您的載體。在這裏,你說的是矢量構造使用指針運算從auxMat開始複製,直到結束內存:
std::vector<int> collectionSum(auxMat, auxMat + (gray.rows * gray.cols));
編輯:
對不起,我看了你的問題,作爲一維數組(INT *)而不是2D(int **)數組。我誠實地建議切換到一維數組,因爲通常它更快,更容易處理。根據是否您使用行優先的順序或列優先順序,就可以訪問你想要的元素:
elem = y * width + x; // for row-first order
elem = x * height + y; // for column-first order
例如:你有
// Create a 3x3 matrix but represent it continuously as a 1D array
const int A[] = {1, 2, 3, 4, 5, 6, 7, 8, 9};
const unsigned width = 3;
const unsigned height = 3;
for (int y = 0; y < height; ++y)
{
for (int x = 0; x < width; ++x)
{
printf("%d ", A[y * width + x]);
}
printf("\n");
}
到'的push_back()'的值個別。 –