本篇介紹 C++ 的 std::random_shuffle 用法,並使用 std::random_shuffle 來產生不重複的隨機亂數,在一些情形下很需要使用到不重複的隨機亂數,趕快來學習吧。
實際應用案例
之前用 Qt 寫音樂播放器時,要實現隨機播下一首的功能,
就需用產生不重複的隨機亂數,這樣每次下一首個才會不重複到,就順便記錄下來吧。
需要引入的標頭檔:<algorithm>
使用範例
1 | // g++ std-random_shuffle.cpp -o a.out -std=c++11 |
輸出1
2list : 1 2 3 4 5 6 7 8 9 10
result: 6 4 1 3 2 7 10 8 5 9
參考
[1] std::random_shuffle, std::shuffle - cppreference.com
https://en.cppreference.com/w/cpp/algorithm/random_shuffle
[2] random_shuffle - C++ Reference
http://www.cplusplus.com/reference/algorithm/random_shuffle/
[3]【C++ STL应用与实现】64: 如何使用shuffle和random_shuffle : 洗牌 (since C++11)
https://elloop.github.io/c++/2015-12-24/learning-using-stl-5-std-shuffle
[4] C++11 的 Random library, 你還在用rand()嗎? | Chino’s
http://chino.taipei/note-2016-1020C-11-%E7%9A%84-Random-library-%E4%BD%A0%E9%82%84%E5%9C%A8%E7%94%A8rand-%E5%97%8E/
其它相關文章推薦
C/C++ 新手入門教學懶人包
std::thread 用法與範例
std::deque 用法與範例
std::find 用法與範例
std::mutex 用法與範例
std::unordered_map 用法與範例
std::sort 用法與範例
std::shared_ptr 用法與範例
std::async 用法與範例