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?
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?
Wbudowana prewnie nie, ale jeśli nie musi być superwydajnie to możesz posortować oba wektory i wtedy porównać.
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;
O to chodziło. Dziękuję.
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
.