Третьего дня, во время сортировки старых закладок, попалась мне на глаза блок-схема с алгоритмом выбора STL-контейнера. «Почему же для контейнеров есть, а для стандартных алгоритмов нет? — подумал я. — Это необходимо исправить». Подумано — сделано. Сперва планировалось за пару часов нарисовать нечто простенькое, но в дальнейшем обнаружилось, что алгоритмы никак не хотят умещаться в простенькую схему. Я слегка увлекся, и спустя два вечера схема вобрала в себя 84 алгоритма, а также немного дополнительной информации. Под катом можно увидеть, что получилось в итоге.


Версия с чудными картинками и большими буквами
По клику хайрез, не влезший в хабрахранилище. В самом хабрахранилище размер на грани читабельности

Минималистичная версия
И здесь тоже

Схема соответствует реалиям C++14, но отличия от C++11 минимальны (и перечислены здесь).

Исправления, дополнения, пожелания, холивары строго приветствуются.

UPD: По совету Halt узел с неоднозначной развилкой был переформулирован.

Комментарии (19)


  1. GeckoPelt
    21.09.2015 16:41
    -7

    КДПВ!!!


    1. pehat
      21.09.2015 16:56
      -9


    1. GeckoPelt
      22.09.2015 00:16
      -3

      Дорогие минусующие, ну неужели у вас не возникает теплого чувства от этой иллюстрации к классическому изданию «Незнайки на Луне»?:)


  1. lenar
    21.09.2015 16:44
    +1

    Любимая иллюстрация детства!


  1. ls1
    21.09.2015 16:47

    Исходник бы


    1. oteuqpegop
      21.09.2015 17:14
      +1

      Держите ссылки на Gliffy:

      www.gliffy.com/go/publish/8874265
      www.gliffy.com/go/publish/8956331

      Я, правда, не уверен, что они останутся доступными, когда у меня закончится триал.


      1. ls1
        21.09.2015 17:28
        +3

        И не жаль вам столько трудов хоронить на таком «сервисе»? Можно было и в LibreOffice Draw (или даже Dia) то же самое изобразить, не было бы проблем с экспортом да и просто просмотром исходника.


        1. oteuqpegop
          21.09.2015 17:37
          +4

          Вы сейчас пробудили во мне уже почти прошедшую БОЛЬ момента, когда я осознал, что экспорт в SVG делается у них транзитом через растровые форматы. Но что поделать, менять что-либо уже слишком поздно было, и пришлось танцевать с бубном. Зато теперь я знаю, что это плохой сервис.


  1. Halt
    21.09.2015 17:12
    +6

    Вопрос «Будем модифицировать или создавать коллекции» и варианты ответа «Да» и «Нет» порвали мне мозг.

    А по делу: начинание, бесспорно отличное, но цветовое кодирование, форма блоков и навигация вызывают вопросы.

    Больше похоже на забавную картинку, нежели на рабочий инструмент.


    1. oteuqpegop
      21.09.2015 17:29
      +1

      Ну, я мыслю так: по полноте и удобству оно вряд ли может соперничать с cppreference или чем-то подобным. А вот чтобы распечатать и иметь возможность быстро пробежаться глазами — сгодится. Соответственно, забавность мне показалась желательным свойством, приятнее ведь повесить на стену что-то эдакое.

      Из этого вытекает и довольно запутанная навигация, которая зато позволила сделать ее почти прямоугольной.

      И да, вы правы насчет «модифицировать или создавать», я поправлю «или» на «либо» вечером.


      1. Halt
        21.09.2015 17:53
        +1

        Любой специалист по юзабилити вам скажет, что следует избегать косвенности.

        Шутки с «не сохранять изменения? да/нет» не возникло бы, если кнопки подписать как «сохранить» и «выбросить», а вопрос сформулировать как «что делать с изменениями?».

        Поэтому лучше ветки подписать явно, как «модифицировать» и «создавать».

        P.S.: Сами картинки не мешают, мешает спагетти из стрелочек и невозможность навигации по областям. То есть в любом месте диаграммы может оказаться что угодно.


        1. oteuqpegop
          21.09.2015 17:58

          Так и сделаю. Спасибо.


  1. maydjin
    21.09.2015 17:25
    +3

    «Будем модифицировать или создавать коллекции?» Да/Нет

    Не распарсил. И не дочитал комменты *facepalm*.


    1. toxicdream
      22.09.2015 06:47
      +4

      У женщин с этим проблем нет: Да = первый вариант, Нет = второй.
      Это я как наученный горьким опытом говорю.


  1. AtomKrieg
    22.09.2015 10:21

    извините, но мне как-то роднее
    http://habrahabr.ru/company/infopulse/blog/194726/

    а ваш хайрез у меня не открывается.


  1. igrishaev
    22.09.2015 14:57
    -1

    Стыдно использовать такие иллюстрации не по делу.


  1. oteuqpegop
    23.09.2015 15:30

    Узел про «Будем модифицировать или создавать коллекции?» поправлен, картинки перезалиты.


  1. mmatrosov
    01.10.2015 17:20

    Ссылка на equal range, вопрос упорядочена ли коллекция. Полагаю, имелось ввиду, отсортирована ли она. Неконсистентненько получилось.


    1. oteuqpegop
      01.10.2015 21:12

      Да, как-то проглядел, спасибо. Поправлю в ближайшее время.