bool operator==(const Name_pairs& aa, const Name_pairs& bb) { //sort first Name_pairs a = aa; a.sort(); Name_pairs b = bb; b.sort(); //then compare, so Name_pairs is unordered; //check the length if (a.get_name().size() != b.get_name().size()){ return false; } //check the elements each for (size_t i = 0; i < a.get_name().size(); ++i){ if (a.get_name()[i] != b.get_name()[i]){ return false; } if (a.get_ages()[i] != b.get_ages()[i]){ return false; } } return true; }