我有複製多維向量的問題,我已經嘗試了很多東西,但是這是最後一個:C++複製多維向量
vector < vector <int> > a;
vector < vector <int> > b;
a.resize(10);
b.resize(10);
a[0][0] = 123;
copy(a.begin(), a.end(), back_inserter(b));
cout << b[0][0];
我試圖做一個遞歸循環計數所有可能的在10個移動中的網格中路由。我試圖創建一個名爲current_path
的向量,它將保存每次遞歸的當前路徑,當current_path
有10次移動時,它會將數據從current_path
複製到all_paths
。
網格是這樣的:
0 1 2 3
4 5 6 7
8 9 10 11
12 13 14 15
您只能移動到你從0觸及,因此一個正方形,你可以移動到1,4和5和1至3,4,5,6等等。
主要想法是將current_path
複製到下一個函數調用(遞歸),所以它將保持curren_path
到那一點,直到它滿了(10步)。當它從current_path
複製到all_paths
我想我必須刪除current_path
?
我知道如何有效地計算所有步驟,但我無法複製current_path
和propably錯誤,如何在10步時將current_path
添加到all_paths
?
這裏的回答類似的問題我回答昨天,只需用數字填充矢量並按照需要的方式更改數字http://stackoverflow.com/questions/13552430/matrix-adjacent-elements-combinations-in-c/13552643#13552643 – hinafu