Porównywanie wektorów z takimi samymi elementami.

0

std::vector<int> vec1{1,2,3,4,5};
std::vector<int> vec2{2,4,3,5,1};

Czy jest jakaś funkcja orzekająca, że oba wektory zawierają te same elementy, choć nie w tej samej kolejności?

0

Wbudowana prewnie nie, ale jeśli nie musi być superwydajnie to możesz posortować oba wektory i wtedy porównać.

6

C++ 11

    std::vector<int> v1 {1,2,3,4,5,6};
    std::vector<int> v2 {3,1,2,6,5,4};

    std::cout << std::is_permutation( v1.begin(), v1.begin(), v2.begin() ) << std::endl;
0

O to chodziło. Dziękuję.

3

Jeśli kolejność elementów w tych wektorach nie ma dla Ciebie znaczenia, możesz też umieszczać je od razu w std::unordered_set<int>. Wtedy sprawdzenie czy zbiory są równe to zwyczajne a==b.

1 użytkowników online, w tym zalogowanych: 0, gości: 1