У меня есть std::map с uint32_t в качестве типа ключа и пользовательского типа значения. Я хочу выбрать из этой карты верхние пары значений k на основе членов типа значения. Для этого я сначала копирую все элементы std::map в std::vector, а затем сортирую вектор. Наконец, я удаляю все элементы вектора с индексами больше k. Вот мой код:
У меня есть std::map с uint32_t в качестве типа ключа и пользовательского типа значения. Я хочу выбрать из этой карты верхние пары значений k на основе членов типа значения. Для этого я сначала копирую все элементы std::map в std::vector, а затем сортирую вектор. Наконец, я удаляю все элементы вектора с индексами больше k. Вот мой код: [code]#include #include #include #include #include
struct Values { uint32_t a = 0; uint32_t b = 0;
Values(uint32_t x, uint32_t y): a(x), b(y) {} };
template auto print_top_k(std::size_t k, MapType&& map) { std::vector v; v.reserve(map.size());