我在教自己使用模板,並一直在懷疑是否有一種方法來以通用方式遍歷嵌套容器。我已經看到了以這種方式遍歷單個容器的例子。嵌套的泛型容器迭代C++
這是一個向量向量的函數示例。我想爲valarrays和數組數組創建此工作,而無需爲每個數組編寫單獨的函數。提前致謝。
// matrix sum of two vectors of vectors
template<typename T>
vector<vector<T>> sum(vector<vector<T>> const &M1,
vector<vector<T>> const &M2) {
vector<vector<T>> MS(M2.size(), vector<T>(M2[0].size()));
for (unsigned int i = 0; i < MS.size(); ++i) {
for (unsigned int j = 0; j < MS[i].size(); ++j) {
MS[i][j] = M1[i][j] + M2[i][j];
}
}
}
我們在這裏討論了多少維數,即您考慮了多少個嵌套向量?如果兩個(二維數組)我不認爲有一個可以滿足您的條件的源代碼:「無需爲每個函數編寫單獨的函數」,因爲解決方案需要模板專業化 - 兩個矢量分離函數和類型不是矢量。 – 2015-04-05 20:24:56
我在想這種情況下的2D容器。 – pinetreepatzer 2015-04-06 18:40:03