我已經搜索了關於n維數組中的映射函數,但沒有找到特別的答案。我想知道多維數組是如何工作我的C++?在n維數組中尋找特定索引元素的通用公式是什麼?C++中的映射函數是什麼?
-3
A
回答
-1
重新定義操作符[]與重新定義的oprator返回Object []
template<T>
struct Matrix {
// initialization and access checking skipped
typedef std::vector<T> t_raw;
typedef std::vector<t_raw> t_col;
t_col m_mat;
struct Idx {
Matrix* mat;
size_t row;
T& operator[](size_t col) {
return this->mat->m_mat[ this->row ][col];
};
}
Idx operator[](size_t row) {
Idx idx;
idx.mat = this;
idx.row = row;
return idx;
};
friend class Idx;
};
Matrix<int> m;
m[1][2] = 5;
1
鑑於一個k維數組arr[n,1][n,2][n,3]...[n,k]
,元件的在arr[x,1][x,2][x,3]...[x,k]
索引爲x,k + x,(k-1) * n,k + x,(k-2) * n,k * n,(k-1) + ... + x,1 * n,2 * n,3 * ... * n,k
。
相關問題
- 1. 什麼是映射縮減函數
- 2. XSLT 3.0中映射函數的命名空間是什麼?
- 3. 什麼是圖像處理中的逆映射函數?
- 4. 什麼線性映射函數
- 5. C++函數映射實現
- 6. 映射C++類函數
- 7. 什麼是PDO映射?
- 8. 爲什麼一個函數中的映射值受到另一個函數中映射項的影響?
- 9. 函數「映射」是做什麼的?爲什麼矩陣尺寸有問題?
- 10. 映射函數
- 11. 爲什麼這個MapReduce映射函數發射不起作用?
- 12. 多映射與矢量映射的優點是什麼?
- 13. 這是什麼類型的映射?
- 14. 什麼是C++中的僞虛函數?
- 15. 什麼是在python中使用賦值映射函數的好替代方法?
- 16. 什麼是NetrwBrowseX以及相關的vim映射是什麼?
- 17. 什麼是用C++編寫的好的UV映射庫?
- 18. datastax映射類中的timeuuid應該是什麼數據類型?
- 19. Vimscript - 映射函數
- 20. 反應中的映射函數(err:TypeError:e.map不是函數)
- 21. 爲什麼我的Knockout映射會殺死我的$ .change函數?
- 22. 什麼是創建函數映射到參數的最有效方法?
- 23. 在TypeScript中映射泛型函數中的映射類型
- 24. C映射字符串到函數
- 25. C++ find()用於映射成員函數
- 26. C++,stl函數向量指針映射
- 27. 什麼是動作映射XML文件?
- 28. 在C/C++中訪問X11顏色映射的標準方式是什麼?
- 29. 什麼是「|」在C函數中?
- 30. 使用函數指針映射時的C++調用函數
http://stackoverflow.com/a/3755221/14065 –
重複不會回答問題,因爲我解釋它 - 但它是模糊的。無論它值什麼,如果說'T a [4] [5] [6];',編譯器通常會創建'T _a [4 * 5 * 6]'的等價物,並且可以訪問'a [i] [j] [k]'與'_a [k + j * 6 + i * 6 * 5]'相切。換句話說,元素仍然是連續的,並且改變最右邊的索引移動到內存中的相鄰元素。 –