我想要做的是洗牌現有的數組(矢量)。這裏有一個問題,實際上有兩個相互依賴的數組(向量)。更準確地說,我有一個包含模式的2d向量,所以每一行代表一個模式,然後是另一個包含每個模式所需輸出的2d向量。從C++中的兩個相關向量進行隨機選擇的最快方法是什麼?
所以它看起來像這樣的事情:
vector<vector<float>> P{ vector <float> {0, 0},
vector <float> {1, 0},
vector <float> {0, 1},
vector <float> {1, 1} };
vector<vector<float>> T{ vector <float> {0},
vector <float> {1},
vector <float> {1},
vector <float> {0} };
現在我需要重新洗牌的格局集合,因此他們的個人行的次序每次都不同,我們遍歷P.我再次說,既然普的大小()這裏是4,因此我們有4個模式,我們希望一次選擇一個模式,直到我們訪問所有模式。
當所有的模式一個接一個被選中時,一個時期就完成了,我們需要改變下一個時期的模式順序。我們將這樣做任意次數,每次這些模式順序需要改變,(例如第一次(0,0)是第一次,然後是(0,1)和(1,0) )和最後(1,1),在第二個時期,我們可能有(1,1)(1,0)(0,0)(0,1)作爲模式)。
所以當我們洗牌的模式集合,我們需要有目標集合洗牌完全一樣。什麼是最快的方式?有不同的方式,通過我的頭跑,如:
創建映射出這兩個數組中,並映射與相應的目標每個圖案,然後洗牌模式集合。無論何時需要目標,都可以通過地圖輕鬆訪問。
使用元組創建一個新列表並隨機播放新創建的元組並開始工作。
只是使用0到3之間的一個隨機數並選擇一個數字(模式索引)並使用它,將索引存儲在一個數組中,該數組用於防止在一個時期中選擇相同的索引兩次。
在這種情況下你會有什麼建議?
謝謝,有沒有辦法繞過使用另一個向量訪問索引頭部間接?或者它可以忽略不計? – Breeze