C++ 入門指南 4.01

練習 17.7 參考程式 - 練習標準程式庫 algorithm 的攪亂順序函數

// 引入標準程式庫中相關的輸入、輸出程式
#include <iostream>
// 引入標準程式庫中的 shuffle
#include <algorithm>
// 引入標準程式庫中的 mt19937
#include <random>
// 引入標準程式庫中的 chrono::system_clock
#include <chrono>

// cout 為 std 中的輸出物件
using std::cout;
// endl 為 std 中的斷行符號
using std::endl;
// shuffle 為 std 中的攪亂函數
using std::shuffle;
// system_clock 為 std 中的系統時間
using std::chrono::system_clock;
// mt19937 為 std 中的擬隨機數產生器
using std::mt19937;

int main(void) {
    // 宣告建立整數陣列
    int a[10] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};

    // 獲取時鐘週期個數
    unsigned int seed = system_clock::now().time_since_epoch().count();

    // 攪亂整數陣列中的元素順序
    shuffle(&a[0], &a[10], mt19937(seed));

    // 印出整數陣列的元素
    for (int i = 0; i < 10; i++) {
        cout << a[i] << ' ';
    }
    cout << endl;

    // 最後回傳 0 給作業系統
    return 0;
}

/* 《程式語言教學誌》的範例程式
   http://kaiching.org/
   檔名:exercise1707.cxx
   編譯:g++ exercise1707.cxx
   執行:./a.out
   功能:C++入門指南單元十七的練習
   作者:張凱慶 */
回到練習題目

上一頁 練習 17.6 參考程式 - 練習標準程式庫 algorithm 的攪亂順序函數
回 C++ 入門指南 4.01 目錄
下一頁 練習 17.8 參考程式 - 練習標準程式庫 algorithm 的攪亂順序函數
回 C++ 教材
回程式語言教材首頁