0
說我有兩個數組KEYS和VALS,我想隨機隨機混洗它們(在洗牌後應保留鍵值對匹配)。在C中一致隨機混排2陣列
如果我用一個靜態值給隨機函數賦值,然後在KEYS上調用std :: random_shuffle,然後VALS會以同樣的方式對這兩個數組進行混洗?
說我有兩個數組KEYS和VALS,我想隨機隨機混洗它們(在洗牌後應保留鍵值對匹配)。在C中一致隨機混排2陣列
如果我用一個靜態值給隨機函數賦值,然後在KEYS上調用std :: random_shuffle,然後VALS會以同樣的方式對這兩個數組進行混洗?
是的,他們會,但只有當你洗牌第一,然後種子隨機數發生器相同的價值,然後再洗牌。你應該對兩者都使用相同的洗牌功能;使用不同的洗牌機可能會或可能不會調用rand()不同的次數是很危險的。
但是,我建議你以某種方式關聯數據;你可以實現一個映射或者只是把數據放在一個結構中。保持陣列獨立,並相信你的隨機函數將洗牌他們完全相同的方式要求麻煩。
洗牌和索引數組,然後用它來重新排列這兩個數組 –
爲什麼不洗牌'boost :: zip_iterator'? –
如果你在每次洗牌之前使用相同的種子,那麼是的......它會怎麼樣呢?但爲什麼你的鍵和val在不同的數組中?把一個鍵和val放在一個結構中。 –