SET | MULTISET | Ассоциативные контейнеры | Библиотека стандартных шаблонов (stl) | Уроки | C++ #9

Поділитися
Вставка
  • Опубліковано 11 лис 2024

КОМЕНТАРІ • 92

  • @SimpleCodeIT
    @SimpleCodeIT  6 років тому +40

    *Cамый лучший способ сказать "спасибо" - поставить лайк и и поделиться уроком с друзьями. Это очень мотивирует создавать полезные уроки =)*

  • @vladstepovoyvios
    @vladstepovoyvios 6 років тому +70

    Полезно!А ещё,возможно вы знали, чтобы не копировать какую либо строчку(ибо много телодвижений),можно просто поставить курсор на ней либо же выделить кусок кода и нажать ctrl+ d

    • @dondimon3910
      @dondimon3910 8 місяців тому

      Кайф, спасибо за совет 😄

  • @IXEmHy666
    @IXEmHy666 2 роки тому +19

    создание объекта типа set:
    set имя древа;
    Добавить элемент:
    Добавить в set можно только УНИКАЛЬНЫЕ значения:
    set имя древа = { , , , , , };
    mySet.insert(значение) - добавляет элемент в древо. Если элемент успешно добавлен в коллекцию, возвращается пара: итератор на тот элемент который мы передали + булевая переменная(в данном случае она будет true).
    Если элемент существует в коллекции, то первое значение будет итератор указывающий на этот элемент В КОЛЛЕКЦИИ, второй: булевая переменная (false в этом случае);
    Перебрать все элементы древа:
    for (auto &item : имя нашего древа)
    {
    cout

    • @bonusanima
      @bonusanima 2 роки тому +1

      Был бы под каждым видео такой конспектик. Спасибо большое)

    • @IXEmHy666
      @IXEmHy666 2 роки тому +1

      @@bonusanima если честно, для себя писал... Извини(

    • @bonusanima
      @bonusanima 2 роки тому +1

      @@IXEmHy666 не надо извиняться. Я просто отметил, что было бы удобно, если бы кто-нибудь (не конкретно Вы) под другими видео делали такие записи. Я до ООП конспектировал уроки, но в тетрадку. А теперь как и всем лень

    • @ЛевБосов-п2у
      @ЛевБосов-п2у 2 роки тому

      Я нашёл твой акк ехууу

    • @smaginaleksei
      @smaginaleksei Рік тому

      Спасибо за коммент. Не мог понять почему mySet.find() != mySet.end() означает наличие объекта в коллекции. Отвлёкся на секунду и пропустил важную инфу)

  • @vladimirsmirnov1205
    @vladimirsmirnov1205 Рік тому +1

    Если необходимо вывести значения функции "equal_range()" - это можно сделать так:

    multiset myMultiSet = {0,1,5,1,7,19,16};
    auto it = myMultiSet.equal_range(1);
    auto it1 = it.first;
    auto it2 = it.second;
    cout

  • @SimpleCodeIT
    @SimpleCodeIT  6 років тому +10

    #set #multiset #SimpleCode #урокипрограммирования

  • @ВасяЗеленев
    @ВасяЗеленев 6 років тому +26

    Одни из лучших уроков по плюсам! ) очень удачный формат уроков. Спасибо вам огромное за ваш труд! Буду надеяться что тематику c++ вы раскроете как можно шире )

  • @flepjack
    @flepjack 3 роки тому +8

    Все круто, хотелось бы увидеть еще принцип работы multiseta-a , как расположены одинаковые значения

  • @andrewbistroff7558
    @andrewbistroff7558 6 років тому +21

    Спасибо Сергей за то время что тратите на нас!

  • @eugenesidelnyk4600
    @eugenesidelnyk4600 5 років тому +8

    Самое то для просмотра на скорости 2x. Спасибо)

  • @sashatim8244
    @sashatim8244 6 років тому +3

    Вовремя зашел на ютуб.Спасибо!

  • @KurpatovInstagram
    @KurpatovInstagram 6 років тому +3

    Спасибо!

  • @Ermine882
    @Ermine882 6 років тому +12

    Спасибо за урок.

  • @Antonov_Ivan.
    @Antonov_Ivan. 10 місяців тому

    Спасибо за урок!

  • @n1kson178
    @n1kson178 5 років тому +4

    То же задание было на экзамене по языкам программирования. Очень легкое

  • @pavelios3577
    @pavelios3577 5 років тому +1

    Спасибо за видео.

  • @artlinestudio6735
    @artlinestudio6735 3 роки тому +1

    Отличный урок!

  • @Orange_999
    @Orange_999 8 днів тому

    Спасибо.

  • @moonrider8697
    @moonrider8697 6 років тому +6

    Спасибо за урок

  • @GamerPro-yy9mr
    @GamerPro-yy9mr 6 років тому +4

    Спасибо огромное, помогаешь, продолжай в том же духе!

  • @brukkillife9165
    @brukkillife9165 6 років тому +13

    Спасибо большое за такой большой курс по С++
    Я его даже на всякий случай полностью скачал!!)
    Ещё раз огромное спасибо!
    P.S. а графические приложения скоро будут?

  • @Евдочок
    @Евдочок Рік тому +4

    для тех умников которые говорят, что у автора много воды, этой "водой" он объясняет дополнительные функции и фичи.

  • @vladalu9794
    @vladalu9794 6 років тому +2

    спасибо большое за урок!!!

  • @BastionKadabr
    @BastionKadabr 6 років тому +7

    ех глюкануло названице
    думал на конец то шарп подъехал )

  • @WormsWolf1
    @WormsWolf1 6 років тому +1

    Спасибо

  • @takiekakmi7532
    @takiekakmi7532 3 роки тому

    Офигеть, дак вот где деревья реализуются в структуре

  • @ShefArd55r
    @ShefArd55r 6 років тому +6

    Не понятно каким образом удаляется элемент из set. Получается как и с массивом создается новый set , но уже без элемента, указанного в set.erase() ?

    • @serhiyhrytsiuk4376
      @serhiyhrytsiuk4376 6 років тому +16

      Это вам надо углубится в теорию бинарного дерева. После удаления элемента, вся ветка дочерних элементов перестраивается. Никакой новый сет не создаётся. Все элементы дерева - ноды, которые хранят ссылку на ноду-родитлея и максимум две ноды-дочери (тут уж как повезёт). Всё что происходит дальше - переписывание ссылок. Надеюсь понятно

  • @jangiryanarsen4952
    @jangiryanarsen4952 6 років тому +1

    Продолжайте С++

  • @ЯрославГоловко-ф6и

    спасибо

  • @mykhailomorhal2181
    @mykhailomorhal2181 6 років тому +1

    спасибо)

  • @ovdivay9628
    @ovdivay9628 3 роки тому +1

    вы топ ! на этом мои полномочия все :)

  • @Versie2007
    @Versie2007 6 років тому +4

    А про typedef уроков-то и не было :)

  • @wldzam
    @wldzam 3 роки тому

    thnks

  • @Torpedo-ZIL
    @Torpedo-ZIL 6 років тому +2

    Автор молодец. Но теперь ведь надо эти все 150 уроков применить практически? Или как? Чё то я совсем уже теорию забывать стал. Давайте практиковаться ежедневно! Автор жду обещанных игр и практические уроки программирования по С++.

  • @ramiltaghiyev9712
    @ramiltaghiyev9712 Рік тому

    23:37 а какой тип данных на строке 25? Возвращается два элемента значит это пара? а если бы вернулось больше элементов?

  • @BAIN1320
    @BAIN1320 4 роки тому +9

    То, что метод удаления есть - это я понял. А как происходит перераспределение потомков, удалённого родителя?)) PS. Спасибо за уроки!

  • @oraclevb5430
    @oraclevb5430 4 роки тому +1

    а что насчет типа данных стринг как будет вести себя контейнер сет ? как будет упорядочить стринги?

    • @АлмазШагиев-ь3у
      @АлмазШагиев-ь3у 4 роки тому +2

      Сортироваться будут исходя из того, что даст оператор > либо < при сравнении двух строк:
      Допустим, ("testone" > "testtwo") вернет 0, так как код ASCII буквы 'o' меньше, чем буквы 't' (другими словами, строки сравниваются до первого "неравного" символа)
      И так же как с целыми числами, будет сортироваться и set с строками

  • @mastermaths4929
    @mastermaths4929 2 роки тому +1

    Советую на скорости 2х

  • @stepanbazrov6330
    @stepanbazrov6330 4 роки тому

    Ни одного дизлайка!)

  • @artemtimofeev1319
    @artemtimofeev1319 2 роки тому

    Спасибо за урок! Такой вопрос, при заполнении set с помощью rand()%10 у нас могло получиться так, что уникальных элементов было бы на 10, а 5?

    • @weasoul7342
      @weasoul7342 2 роки тому

      могло

    • @flickerstrike5525
      @flickerstrike5525 2 роки тому

      минимум - 1 (если все 10 раз (остаток от деления от 0 до 9) выпало бы одно и то же число, вероятность такого 10 (количество чисел(0-9)) * 1 / (10^10), итого 1 к 10^9)

  • @sergeykirdyankin7027
    @sergeykirdyankin7027 Рік тому

    Для multiset дерево нарисовать бы

  • @ivanuchka007dunduk3
    @ivanuchka007dunduk3 4 роки тому

    за два года ни одного дизлайка... Ты че творишь?

  • @flickerstrike5525
    @flickerstrike5525 2 роки тому

    если вдруг кто увидит - что значит .equal_range () возвращает диапазон значений? что за диапазон, к какому типу данных его можно присвоить?

    • @ИгроманРоман-н2ш
      @ИгроманРоман-н2ш Рік тому

      Возращает то число которое ты ему дал и больше него и того 2 числа как я понял того типа даных какого у тебя бинарное дерево хотя ты уже я думаю это давно проверил

    • @sleepyNovember_project
      @sleepyNovember_project 9 місяців тому

      @@ИгроманРоман-н2ш лол, наверное проще сказать что оно возвращает пару объектов класса iterator (пару итераторов)

  • @SvinTeamStudio
    @SvinTeamStudio 4 місяці тому

    Как выглядит мультисет?

  • @ra1n660
    @ra1n660 4 роки тому +2

    Я не уверен, но по-моему это не просто бинарное дерево, а декартово. То есть совмещение кучи и бинарного дерева.

  • @googlehome322
    @googlehome322 6 років тому +1

    Кто нибудь сможет помочь или подсказать, как лучше всего вывести на экран бинарное дерево , как дерево! с отображением по уровням

  • @alexeygrigorev4317
    @alexeygrigorev4317 6 років тому +10

    не слушай лукавых, не нужен нам пока что до-диез) А насчёт этого... Корнем этих классов становится число, которое было добавлено самым первым, так ведь? Т.е, у нас может первым числом добавиться значение -999999999999, а потом будут добавляться лишь значения больше, тогда у нас вся левая ветка древа будет пуста? Логично, что да. Есть ли у этих классов функции для сортировки дерева? Ну, или, мб в дальнейшем будут какие-то пояснения по этой теме?

    • @serhiyhrytsiuk4376
      @serhiyhrytsiuk4376 6 років тому

      Что значит функции сортировки дерева? Дерево уже отсортировано и иначе быть не может.

    • @alexeygrigorev4317
      @alexeygrigorev4317 6 років тому +2

      я не совсем это имел ввиду... Явно, что если корнем дерева будет число, максимально близкое к среднему арифметическому этого дерева, то поиск будет быстрее, чем, если к примеру, корнем будет число 1, и числа 2,3,4...100 будут рассортированы в правой ветке. Так, чтобы найти число 51, придётся сделать 50 шагов. А если имеются те же числа, но корнем дерева будет число 50, то для нахождения числа 51 придётся сделать всего лишь 1 шаг...

    • @serhiyhrytsiuk4376
      @serhiyhrytsiuk4376 6 років тому +2

      Как-бы всё правильно, но есть одно но: когда мы делаем выбор в пользу того или иного контейнера, то мы хоть как-то представляем себе каким образом туда будуть попадать данные и если мы предполагаем, что элементы будут записываться всегда или почти всегда по возрастанию, то бинарное дерево может быть и не лучшим выбором. Тут всё зависит от задач. Бинарный поиск один из самых быстрых, а в описаной вами ситуации поиск по-умолчанию будет одинаково доглим для любого контейнера

    • @alexeygrigorev4317
      @alexeygrigorev4317 6 років тому

      ок, спасибо :)

    • @alexeygrigorev4317
      @alexeygrigorev4317 6 років тому

      мм, тебе спасибо куда больше ;)

  • @apalon8285
    @apalon8285 3 роки тому +1

    Здравствуйте,сделел всё как указано на видео(ввод и вывдо) и получается бесконечный цикл...
    Подскажите что делать?

    • @Чмоня-в4ъ
      @Чмоня-в4ъ 3 роки тому

      Если еще не решил эту проблему, то скинь код. Я, возможно, пойму в чем ошибка

  • @wonder_dw9841
    @wonder_dw9841 3 роки тому

    Такой вопрос, на 9:44 почему set обошёл число 3?

    • @ПетрБезбородых
      @ПетрБезбородых Рік тому

      Просто генератор случайных чисел не выдал число, которое при делении на 10 давало бы в остатке 3. Если бы в цикле было больше итераций, заданное число с большей вероятностью могло бы появиться.

  • @TOP2Two
    @TOP2Two 5 років тому

    100% лайков

  • @samsweet9993
    @samsweet9993 3 роки тому

    Что здесь выполняет амперсанд перед итем?

    • @sleepyNovember_project
      @sleepyNovember_project 9 місяців тому

      берёт адрес каждого элемента из mySet и выводит, не копируя их в себя

  • @ArtemyMorozov123
    @ArtemyMorozov123 2 роки тому

    А как удалить элемент, зная его номер?

  • @dmitryshysha6362
    @dmitryshysha6362 6 років тому +3

    Начнём ли мы учить С#

  • @maksimanvar7361
    @maksimanvar7361 4 роки тому

    +

  • @MotoSangria
    @MotoSangria 4 роки тому +1

    Как в set организован упорядоченный вывод?

  • @andrewdemidyuk975
    @andrewdemidyuk975 6 років тому +4

    Это конечно все интересно но давай уже C# )

  • @mosdomveteran9323
    @mosdomveteran9323 5 років тому

    Как вы это только постигли?

    • @vitusink6445
      @vitusink6445 4 роки тому

      Кому то проще по книгам или текстам, а книг = море...

  • @miroslavklyukovsky683
    @miroslavklyukovsky683 2 роки тому +1

    Спасибо!

  • @DD0S2
    @DD0S2 3 роки тому

    спасибо

  • @Vlad_Ofitserov
    @Vlad_Ofitserov Рік тому

    Спасибо!!!

  • @НикитаСолотин
    @НикитаСолотин 3 роки тому

    спасибо

  • @ВітяКоміссаров
    @ВітяКоміссаров 2 роки тому

    спасибо