Kocok std::vektor yang Cekap
Apabila mengocok std::vektor, kecekapan memainkan peranan yang penting. Kaedah yang disediakan menggunakan tatasusunan perantaraan dan pengetahuan khusus jenis tidak optimum.
Pendekatan C Moden
Dalam C 11 dan lebih baru, pendekatan yang lebih cekap tersedia:
#include <algorithm> #include <random> auto rng = std::default_random_engine {}; std::shuffle(std::begin(cards_), std::end(cards_), rng);
Kaedah ini menggunakan fungsi std::shuffle, yang secara efisien merawak unsur. Ingat untuk menggunakan semula tika rng merentasi berbilang std::shuffle panggilan untuk rawak yang konsisten.
Personalized Shuffling
Jika anda inginkan urutan rawak yang berbeza merentas pelaksanaan program, benihkan rawak enjin dengan output daripada std::random_device:
auto rd = std::random_device {}; auto rng = std::default_random_engine { rd() }; std::shuffle(std::begin(cards_), std::end(cards_), rng);
Pendekatan C 98
Untuk C 98, fungsi std::random_shuffle kekal terpakai:
#include <algorithm> std::random_shuffle(cards_.begin(), cards_.end());
Atas ialah kandungan terperinci Bagaimanakah saya Boleh Kocok std::vektor dengan Cekap dalam C ?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!