Помогите с лямбда выражением для сортировки

112
20 марта 2022, 01:20

Проблема с лямбда функцией, вроде написал сортировку вектора по остаткам по возрастанию, так, чтобы числа с одинаковыми остатками выводились по возрастанию но она не работают, я ещё не совсем разбираюсь в сортировка по лямбда выражениям подскажите где накосячил плиз.

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
int main(){
    ll n, k;
    cin >> n >> k;
    vector<ll> V(n);
    for(int i = 0; i < n; i++) cin >> V[i];
    sort(V.begin(), V.end(), [&k](ll a, ll b)
    {
        return (a % k < b % k);
    });
    sort(V.begin(), V.end(), [&k](ll a, ll b)
    {
        return (a % k == b % k && a < b);
    });
    for(int i = 0; i < n; i++) cout << V[i] << " ";
Answer 1

Я бы использовал

sort(V.begin(), V.end(), [k](ll a, ll b)
     {
         return (a%k == b%k) ? a < b : a%k < b%k;
     }
);

По-моему, то, что надо: https://ideone.com/OfIE0t

READ ALSO
(Считывание/Запись) работа с файлами С++

(Считывание/Запись) работа с файлами С++

У меня есть файл с 40 вопросамиМоя задача, поместить все 40 вопросов в вектрок, после чего, выводить от туда один рандомный вопрос

84
Вызов функции_члена шаблонного базового класса из функции производного шаблонного класса

Вызов функции_члена шаблонного базового класса из функции производного шаблонного класса

Знаю, что нужно вызвать f() первыйм или вторым вариантомНо почему является ошибкой просто вызов f(); ? Ведь и так ясно, что вызывается для данного...

82
Память под контейнеры выделяется в стеки или куче?

Память под контейнеры выделяется в стеки или куче?

как выделяется память под контейнеры vector, map в с++

100
Bitset. Изменение битов элементов

Bitset. Изменение битов элементов

Есть некоторые массивы

96