STL: последовательные контейнеры

แชร์
ฝัง
  • เผยแพร่เมื่อ 29 ม.ค. 2025

ความคิดเห็น • 13

  • @alextokarev7562
    @alextokarev7562 7 ปีที่แล้ว +2

    Про адаптеры и псевдоконтейнеры не хватает примеров с кодом. Добавьте, пожалуйста, в будущем, если возможно

  • @alextokarev7562
    @alextokarev7562 7 ปีที่แล้ว

    Уважаемый Computer Science Center, а где можно прочитать условие задания про COW, которое обсуждается на 1:19:00

    • @AlexanderSmal
      @AlexanderSmal 7 ปีที่แล้ว +1

      Там обсуждается домашнее задание для студентов: нужно реализовать аналог std::string, который реализует подход copy-on-write (копирование при записи), при котором строки при копировании не создают новый буффер, а начинают совместно владеть им (это более дешёвая операция). И реальное копирование происходит только в тот момент, когда (и если) одну из этих строк пытаются изменить.

    • @alextokarev7562
      @alextokarev7562 7 ปีที่แล้ว

      Alexander Smal, спасибо большое

  • @BlinCT
    @BlinCT 8 ปีที่แล้ว +6

    лекция хорошая, но вот то что вы пишите мелом на доске, выглядит как то странно да еще и плохо видно. Я думаю проще было бы на компьютере печатать и выводить это все.

  • @greezlock7291
    @greezlock7291 8 ปีที่แล้ว +1

    Александр, большое спасибо за Ваши лекции!
    Можно, пожалуйста, разъяснить последний момент с трюком по уменьшению capacity? Про свап изначального контейнера "v" с временным объектом.
    Правильно ли я понимаю, что здесь вся суть сводится именно к обмену УКАЗАТЕЛЕЙ. Т.е. итераторы(начальный и конечный в случае c vector) во временном объекте, после свапа, указывают на область, которая была аллоцирована изначальным объектом "v". Соответственно она и высвобождается. А та область, которая была выделена временным объектом при его инициализации, поддерживается впредь объектом "v". Я прав?
    По такой логике вещей, capacity это далеко не просто какой-то член объекта, который изменяется при непосредственном выделении памяти для контейнера. Верно?
    P.S. пока писал этот вопрос. любопытство заставило взглянуть "под капот" capacity:
    size_type capacity() const _NOEXCEPT
    { // return current length of allocated storage
    return (this->_Myend() - this->_Myfirst());
    }
    Было бы здорово, если на последующих лекциях по этой теме вы сделаете на этом небольшой акцент.
    Премного благодарен!!!

    • @AlexanderSmal
      @AlexanderSmal 8 ปีที่แล้ว +1

      +Евгений Ш. Внутри swap-а будет произведён обмен указателей. Итераторы тут ни при чём, они создаются по запросу и после выполнения данной операции они все инвалидируются. В остальном, да, Вы правы - v обменивается областью памяти с временным объектом (который является копией v).
      > По такой логике вещей, capacity это далеко не просто какой-то член
      объекта, который изменяется при непосредственном выделении памяти для контейнера. Верно?
      Эту часть Вашего вопроса я не понял. Capacity можно хранить как член вектора, а можно вместо это хранить указатель на конец области памяти. С точки зрения внешнего наблюдателя разницы нет, а стандарт не специфицирует, как это должно быть реализовано.

  • @alexromanov2498
    @alexromanov2498 7 ปีที่แล้ว

    Уважаемый Computer Science Center , это видео доступно только по ссылке. Исправьте, пожалуйста. Откройте его для всех.

  • @МихаилГригорян-ж9п
    @МихаилГригорян-ж9п 8 ปีที่แล้ว +1

    Разве слово "дек" не мужского рода?)

    • @AlexanderSmal
      @AlexanderSmal 7 ปีที่แล้ว

      double-ended-queue, т.е. двухсторонняя очередь.

  • @skynowa2626
    @skynowa2626 8 ปีที่แล้ว +2

    Не стрелочка, а не точка. Малолетний тим лид, наверное))