На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
Модераторы: Qraizer, Hsilgos
Страницы: (5) « Первая ... 2 3 [4] 5  все  ( Перейти к последнему сообщению )  
> Срочно нужна помощь. , Задачка на c++
    Цитата JoeUser @
    В компораторе два аргумента

    Ты просто не так понял процитированное. Смотри там написано:
    Цитата JoeUser @
    Транзитивность — свойство бинарного отношения.

    Вот это бинарное отношение - компаратор.

    Дальше пишут:
    Цитата JoeUser @
    Бинарное отношение R {\displaystyle R} R на множестве X {\displaystyle X} X называется транзитивным, если для любых трёх элементов множества a , b , c {\displaystyle a,b,c} a,b,c выполнение отношений a R b {\displaystyle aRb} aRb и b R c {\displaystyle bRc} bRc влечёт выполнение отношения a R c {\displaystyle aRc} aRc.

    1) то что выделено зеленым имеется ввиду для любых трех взятых элементов из множества, т.е. это не компаратор, это предложение как раз говорит, что твой компаратор будет удовлетворять транзитивности, если для любых трех взятых элементов массива выполняется отношение a R b и b R c ылечет a R c
    Другими словами R - это твой компаратор, а a,b,c - 'это любых три числа, взятых из массива.
    Т.е. по сути если из массива взяли три элемента, "a b c", то для того, что бы твой оператор удовлетворял транзитивности, должно выполнятся вот такое отношение для него:

    Если
    a < b
    и
    b < c
    Тогда
    a < c

    Вот именно так я понял то, что ты привел про транзитивность.
    Сообщение отредактировано: KILLER -
          KILLER, сенкс - понял. Ну ладно, пусть будет так. Я был неправ.

          Тогда пусть будет исправленный вариант от VisualProg:

          ExpandedWrap disabled
            std::stable_sort(v.begin(), v.end(), [](const auto &a, const auto &b) -> bool {
              if (a.first == b.first) return false;
              if (a.first == 0) return true;
              return a.first < b.first;
            });

          ... ну или в этом духе для решения вопроса топика. Хотя negram решил получче :whistle:
          Сообщение отредактировано: JoeUser -
              Некоторые алгоритмы сортировки не заканчивают свою работу или неправильно работают, если им вместо оператора < подсунуть оператор <=. К таковым относятся шейкерная сортировка и (ВНИМАНИЕ) быстрая сортировка Хоара. Естественно, в последовательности должны быть повторяющиеся элементы. Шейкерная сортировка при этом зацикливается, а быстрая сортировка может в некоторых случаях не обработать часть последовательности. Пузырьковая сортировка, сортировка вставками, слиянием и многие другие выполняют лишнюю работу, но выдают в результате отсортированную последовательность.
                Цитата JoeUser @
                Давай-ка цитату из Стандарта.

                Было выше.
                  а студент то где? :punish: :D
                    Цитата Cfon @
                    а студент то где?

                    Думаю, что не появится тут до пересдачи осенью.
                      Цитата shm @
                      Точно, забыл я про stable_partition :(

                      Можно было обойтись обычным partition :)
                        Цитата Flex Ferrum @
                        Цитата shm @
                        Точно, забыл я про stable_partition :(

                        Можно было обойтись обычным partition :)

                        Эт я специально stable_ заюзал, а то перед этим были обвинения в изменении порядка равных элементов :)
                        В задаче про это, конечно, ничего нет, но так все обвинения на корню зарезаны
                          Цитата Flex Ferrum @
                          Можно было обойтись обычным partition

                          Я вот не уверен. Впрочем, мы это вряд ли уже узнаем :)
                          Сообщение отредактировано: shm -
                            Цитата shm @
                            Впрочем, мы это вряд ли уже узнаем

                            Не удивлюсь если автор темы уже вторую неделю листает справочники и методички "по с++" и не может понять, на каком языке вы тут ему задачу решили :lool:
                              А вот я удивлюсь в этом случае.
                                Цитата Qraizer @
                                А вот я удивлюсь в этом случае.

                                +1
                                0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                                0 пользователей:


                                Рейтинг@Mail.ru
                                [ Script execution time: 0,0477 ]   [ 17 queries used ]   [ Generated: 19.04.24, 05:56 GMT ]