std::벡터의 효율적인 셔플
std::벡터를 셔플할 때 효율성이 중요한 역할을 합니다. 중간 배열과 유형별 지식을 사용하여 제공된 방법은 최적이 아닙니다.
현대 C 접근 방식
C 11 이상에서는 보다 효율적인 접근 방식을 사용할 수 있습니다.
#include <algorithm> #include <random> auto rng = std::default_random_engine {}; std::shuffle(std::begin(cards_), std::end(cards_), rng);
이 방법은 요소를 효율적으로 무작위화하는 std::shuffle 함수를 활용합니다. 일관된 무작위화를 위해 여러 std::shuffle 호출에서 rng 인스턴스를 재사용하는 것을 잊지 마세요.
개인화된 셔플링
프로그램 실행 전반에 걸쳐 별개의 무작위 시퀀스를 원하는 경우 무작위 시드를 설정하세요. 출력을 가진 엔진 std::random_device:
auto rd = std::random_device {}; auto rng = std::default_random_engine { rd() }; std::shuffle(std::begin(cards_), std::end(cards_), rng);
C 98 접근 방식
C 98의 경우 std::random_shuffle 기능은 계속 적용 가능합니다.
#include <algorithm> std::random_shuffle(cards_.begin(), cards_.end());
위 내용은 C에서 std::벡터를 효율적으로 섞는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!