Можно ли использовать std :: sort без использования всего элемента?
std::vector<std::pair<int, myclass> > unsorted_vec;
for (some_iterations) {
unsorted_vec.emplace_back(rand(), std::move(instance_of_myclass));
}
std::sort(unsorted_vec.begin(), unsorted_vec.end(),
[](auto & l, auto & r) { return l.first < r.first; });
Приведенный выше код выдает следующую ошибку компиляции, если строка std::sort
не закомментирована.
error: use of deleted function 'myclass & myclass::operator=(const myclass &)' is
implicitly declared as delete because 'myclass' declares a move constructor.
Теперь я объявил конструктор перемещения для myclass, и, кроме того, я действительно хочу удалить ссылочный конструктор. У меня вопрос, как мне отсортировать этот массив? Можно ли получить ссылку на первую часть моей пары, не касаясь второй части?