2017-02-27 48 views
0

我使用typedef boost :: unordered_map。如何獲得一個隨機元素 五:C++ 03如何獲得隨機元素提升unordered_map?

代碼:

member_1.insert(std::make_pair(gg, M2_NEW CGGList(gg))); 

    typedef boost::unordered_map<CGG, CGGList*> Map1; 
    Map1 member_1; 
+0

生成隨機密鑰以獲得隨機值。使用迭代器隨機迭代幾次 –

回答

0

你不會找到一種有效的方法(錯誤數據結構)。

但你總是可以:

auto random_it = std::next(member1.begin(), my_random(member2.size())); 

凡my_random想rand()%n(壞)來實現,或者使用std::uniform_int_distribution<size_t>(更好)。

+0

auto?我使用c + + 03 –

+0

所以?用適當的類型替換它。我沒有看到問題。我正在回答這個問題,我不需要教我C++,或者爲我認爲的未知規格編寫完整的解決方案。 – sehe

+0

問題是如何在03上 –