의 벡터에서 임의의 구조체를 선택합니다. 벡터에서 2 임의의 구조체를 선택하고 무작위로 선택한 구조체의 각 요소를 표시하려면 : km1, km2, km3내가 구조체의 벡터를 가지고 구조체
비슷한 질문을 ints 및 didnt 반환했습니다 어떤 이유로 든 무작위 구조체. 선택 덕분에
의 벡터에서 임의의 구조체를 선택합니다. 벡터에서 2 임의의 구조체를 선택하고 무작위로 선택한 구조체의 각 요소를 표시하려면 : km1, km2, km3내가 구조체의 벡터를 가지고 구조체
비슷한 질문을 ints 및 didnt 반환했습니다 어떤 이유로 든 무작위 구조체. 선택 덕분에
두 사람은 오히려 간단하다
이template <typename Iterator, typename Engine>
std::tuple<Iterator, Iterator> pick_two(Iterator begin, Iterator end, Engine & engine)
{
int size = end - begin;
if (size < 2) {
throw std::invalid_argument("Sequence does not contain two elements");
}
std::uniform_int_distribution<int> distribution(0, size - 1);
int first = distribution(engine);
int second;
do {
second = distribution(engine);
} while (first == second);
return std::make_tuple(begin + first, begin + second);
}
당신은 글로벌 std::default_random_engine random_engine;
주어진 다음과 같이 호출 할 수 있습니다, 그리고 벡터 v
전화 :
auto choices = pick_two(v.begin(), v.end(), engine);
당신은 첫 번째 구조체를 얻을 수 있습니다 값은 *(std::get<0>(choices))
이고 두 번째 값은 *(std::get<1>(choices))
이며 원하는 값을 사용하여 값을 출력하십시오.
어떤 헤더를 포함시킬 수 있습니까? 같은 물건을 받고 : 네임 스페이스 std default_random_engine 형식을 지정하지 않습니다 , 오류 : uniform_int_distribution std의 구성원이 아닙니다 : 오류 :이 범위에서 엔진이 선언되지 않았습니다. 오류 : <식 오류>에서 자동을 추론 할 수 없습니다 – GeorgeCostanza
@GeorgeCostanza' '#include
@winestone yea i random이 포함되어있다. 나는이 체크 표시를주고 싶다. 나는 컴파일 할 코드를 얻을 수 없다. – GeorgeCostanza
두 구조체가 달라야합니까, 아니면 무작위 선택이 둘 다 동일한 구조체 값을 선택할 수 있습니까? – cdhowie
@cdhow 우리는 k-means 알고리즘을위한 클러스터를 선택하기 때문에 다른 사람들이 필요합니다 – GeorgeCostanza
@GeorgeCostanza는 우리가''rand()''를 사용할 수 있습니까 – Winestone