Итераторы STL | Библиотека стандартных шаблонов (stl) | Уроки | C++ | #2

  Рет қаралды 140,996

#SimpleCode

#SimpleCode

6 жыл бұрын

Cамый лучший способ сказать "спасибо" - поставить лайк и и поделиться уроком с друзьями. Это очень мотивирует создавать полезные уроки =)
Арифметика указателей. Указатели и массивы. Массив это указатель. C++ для начинающих. Урок #47
goo.gl/uP9Aez
Умные указатели. Smart pointers. Изучение С++ для начинающих. Урок #130
goo.gl/yAh6Br
Наследование в ООП пример. Что такое наследование. Для чего нужно наследование классов. ООП. C++ #98
goo.gl/xgR75E
✅✅✅✅✅✅✅✅✅✅✅✅✅✅✅✅✅✅✅✅✅
Если вам нравятся мои уроки, вы хотите поддержать меня и развитие канала, то можете сделать это тут!=)
🔴🔴🔴 www.donationalerts.ru/r/simple...
или тут
🔴🔴🔴 / simplecode
✅✅✅✅✅✅✅✅✅✅✅✅✅✅✅✅✅✅✅✅✅
Уроки по программированию
Наша группа ВК smplcode
Подписывайтесь на канал / @simplecodeit

Пікірлер: 137
@SimpleCodeIT
@SimpleCodeIT 6 жыл бұрын
*Cамый лучший способ сказать "спасибо" - поставить лайк и и поделиться уроком с друзьями. Это очень мотивирует создавать полезные уроки =)*
@HerrHoldem
@HerrHoldem 6 жыл бұрын
Этот канал просто золотая находка для любого, кто изучает программирование. Крутые, подробные и понятные объяснения. Не понимаю, почему у некоторых посредственных ютуберов, которые обучают программированию, невероятно большая аудитория, а этого канала так мало - несправедливо
@SimpleCodeIT
@SimpleCodeIT 6 жыл бұрын
Благодарю за поддержку!
@andrewbistroff7558
@andrewbistroff7558 6 жыл бұрын
Спасибо Сергей продолжайте в том же духе ваши уроки на вес золота 🥇.
@SimpleCodeIT
@SimpleCodeIT 6 жыл бұрын
Пожалуйста!
@andrewbistroff7558
@andrewbistroff7558 6 жыл бұрын
Не торопитесь пожалуйста переходить на c# а доучите нас до конца то есть что вы запланировали на c++ (хотелось бы и затронуть оконные приложения на c++ так же подробно)
@overdoses1794
@overdoses1794 6 жыл бұрын
Обычно их не на с++ делают, а на си шарп. Но тоже хотелось бы глянуть гайд=)
@dartware8539
@dartware8539 6 жыл бұрын
А зачем вообще их совмещать? .NET вполне себе самодостаточная платформа.
@sashatim8244
@sashatim8244 6 жыл бұрын
Недавно наткнулся на канал, подписался после 2 урока. Такого полезного контента по C++ я ещё не встречал. Автору огромное Спасибо!
@SimpleCodeIT
@SimpleCodeIT 6 жыл бұрын
Пожалуйста!
@vvgromo
@vvgromo 6 жыл бұрын
Огромное спасибо за уроки! Отличная подача материала. Заметил, что в плейлисте "Основы C++. Программирование для начинающих" этот урок стоит после урока по списку и после урока по ключевому слову auto, где уже активно упоминаются итераторы.
@digitalturkistan1857
@digitalturkistan1857 6 жыл бұрын
наверно самый масштабный видеоуроки по с++ не с++ за час
@KK-gg8sk
@KK-gg8sk 4 жыл бұрын
гоша дударь аКа Всезнающий в шоке, ТАК МОЖНО ЧТО ЛИ БЫЛО???))
@cnota69
@cnota69 3 жыл бұрын
@@KK-gg8sk Ахахахах))))
@extense1337
@extense1337 3 жыл бұрын
Спасибо, лучший канал по С++ и по программированию в целом!!
@user-hi3hw5kj3g
@user-hi3hw5kj3g 3 жыл бұрын
Огромное спасибо за Ваш труд! Благодаря вашему каналу смог начать изучать С++ самостоятельно и спустя некоторое время даже нашёл работу)
@dentuso8
@dentuso8 3 жыл бұрын
только С++ достаточно бьіло?
@user-hi3hw5kj3g
@user-hi3hw5kj3g 3 жыл бұрын
@@dentuso8 я при университете работаю, поэтому не требуется огромных знаний, хватило С++
@cnota69
@cnota69 3 жыл бұрын
@@user-hi3hw5kj3g Хотелось бы узнать, не сложно ли учиться и работать одновременно?
@user-hi3hw5kj3g
@user-hi3hw5kj3g 3 жыл бұрын
@@cnota69 вполне терпимо, если грамотно планировать время)
@alexdubinskiy7390
@alexdubinskiy7390 5 жыл бұрын
Спасибо Вам большое! Все доступно и понятно!)))
@vladalu9794
@vladalu9794 6 жыл бұрын
спасибо Сергей за отличный урок, очень интересно, при просмотре не возможно остановиться))
@nicivanov5135
@nicivanov5135 3 жыл бұрын
Урок отличный! Продолжайте, это замечательно когда есть такие уроки.
@pavelios3577
@pavelios3577 5 жыл бұрын
Спасибо за урок, уважаемый Сергей.
@stensej6841
@stensej6841 3 жыл бұрын
STL уроки очень интересные , сразу чуствую , другой уровень уже :)!!!
@evgeniygazetdinov1620
@evgeniygazetdinov1620 5 жыл бұрын
Самое понятное объяснение которое я нашел,спасибо лайк ставлю подписываюсь однозначно!
@segars9604
@segars9604 5 ай бұрын
Спасибо за бесценный труд!)
@MISSTIK2007
@MISSTIK2007 5 жыл бұрын
Спасибо. Очень крутые уроки, изучаю с удовольствием!
@sldev14
@sldev14 3 жыл бұрын
Отличные уроки... Спасибо!
@akrabato
@akrabato 4 жыл бұрын
Спасибо! Отличные уроки!
@Ermine882
@Ermine882 6 жыл бұрын
Спасибо за урок.
@user-qp3lt4ps8c
@user-qp3lt4ps8c Жыл бұрын
Хорошо раскрыта тема, спасибо!
@justman7656
@justman7656 2 жыл бұрын
Хорош!! Давай-давай вперёд! Контент в кайф! Можно ещё? Вообще красавчик!!
@NoNo-fl6oq
@NoNo-fl6oq 2 жыл бұрын
великолепный урок! благодарю! лайк
@borisshabanov6702
@borisshabanov6702 6 жыл бұрын
Отличный урок!
@KurpatovInstagram
@KurpatovInstagram 6 жыл бұрын
Спасибо!
@teamaker10000
@teamaker10000 5 жыл бұрын
Спасибо, хорошие уроки, как всегда)))
@xikmatillosultonov8959
@xikmatillosultonov8959 4 жыл бұрын
Огромное спасибо за эту уроки !!!!!
@C2H5OHH
@C2H5OHH 2 жыл бұрын
Класс! Спасибо за урок!
@Vlad_Ofitserov
@Vlad_Ofitserov Жыл бұрын
Щиро дякую!
@DEKJ1000
@DEKJ1000 3 жыл бұрын
Спасибо вам огромное за уроки!!!
@user-rm6tg2ud9f
@user-rm6tg2ud9f 6 жыл бұрын
Спасибо большое, доступно и понятно, хорошо объясняете есть последовательность в объяснении
@SimpleCodeIT
@SimpleCodeIT 6 жыл бұрын
Пожалуйста!
@kerril1309b
@kerril1309b 4 жыл бұрын
Спасибо за качественный контент
@PyleNormis
@PyleNormis 2 жыл бұрын
Отличные видео!
@kaynsolo
@kaynsolo 6 жыл бұрын
As usual, like it!
@user-qy8dg4rm8i
@user-qy8dg4rm8i 2 жыл бұрын
Огромное спасибо!
@georgiismirnoff7344
@georgiismirnoff7344 4 жыл бұрын
Спасибо огромное!)
@86werth
@86werth 4 жыл бұрын
Спасибо за труды
@user-bc4vi6hl2f
@user-bc4vi6hl2f 6 жыл бұрын
Спасибо за урок
@digitalturkistan1857
@digitalturkistan1857 6 жыл бұрын
спасибо брат очень бесценные уроки
@SimpleCodeIT
@SimpleCodeIT 6 жыл бұрын
Пожалуйста!
@MrRomcek
@MrRomcek 3 жыл бұрын
Спасибо, удачи в продвижении канала, симуляция вируса мне понравилась)
@anotherpain9120
@anotherpain9120 11 ай бұрын
Благодарю!
@bama2619
@bama2619 2 жыл бұрын
Super!) Thank you
@miroslavklyukovsky683
@miroslavklyukovsky683 2 жыл бұрын
Спасибо!!!
@zhenyacanada1443
@zhenyacanada1443 4 жыл бұрын
Спасииибо :333
@sleepyNovember_project
@sleepyNovember_project 5 ай бұрын
Это очень полезная тема для того чтобы работать со строками (string) на максималках
@user-is9fv5bi7x
@user-is9fv5bi7x 6 жыл бұрын
Спасибо за урок. Теперь понял, что при доступе к элементам контейнера через цикл for в его описании за ключевым словом auto скрывается объявление итератора. На других каналах этому внимания не уделяется, а для новичков такие вещи как раз важны.
@sergapon666
@sergapon666 6 жыл бұрын
будут ли про паттерны проектирования на c++?
@princessmary5556
@princessmary5556 Жыл бұрын
Так, а "итератор" чем вам не паттерн?
@Valiazerdes
@Valiazerdes Ай бұрын
@@princessmary5556 я думаю, этот человек имел в виду именно GoF
@princessmary5556
@princessmary5556 Ай бұрын
@@Valiazerdes И часто вы вот так домысливаете за других? Вопрос риторический.
@user-ut7tj6bp4t
@user-ut7tj6bp4t 4 жыл бұрын
Очень много информации, но урок очень полезный!!
@Sashikx_zxc
@Sashikx_zxc 4 жыл бұрын
Спасибо большое
@user12285
@user12285 Жыл бұрын
Девушка которая играет в роблокс изучает с++? ого
@SimpleCodeIT
@SimpleCodeIT 6 жыл бұрын
#итераторы #STL #SimpleCode #урокипрограммирования
@CaytoCatugawa
@CaytoCatugawa 5 жыл бұрын
Зачем нужны итераторы, если есть указатели и арифметика указателей ?
@rizroz3955
@rizroz3955 3 ай бұрын
Спасибо
@user-kb6qd8rg4g
@user-kb6qd8rg4g 4 жыл бұрын
спасибо
@serhiyhrytsiuk4376
@serhiyhrytsiuk4376 6 жыл бұрын
Сергей, скажите, а паттерны собираетесь объяснять?
@isolaneed2445
@isolaneed2445 11 ай бұрын
Как жизнь, Бро?
@inquisitor4894
@inquisitor4894 Жыл бұрын
159й урок. Еще немного и финал. Урааа!!!
@krazly677
@krazly677 10 ай бұрын
ну что, как дела идут?
@inquisitor4894
@inquisitor4894 10 ай бұрын
Да неплохо
@inquisitor4894
@inquisitor4894 10 ай бұрын
Отлично@@krazly677
@oshskiyuzbek4800
@oshskiyuzbek4800 6 жыл бұрын
😊☝👍👍👍👍
@alishermamaraximov4959
@alishermamaraximov4959 4 жыл бұрын
проста класс
@alexeygrigorev4317
@alexeygrigorev4317 6 жыл бұрын
Хм.. не нарушится ли логика, если контейнер будет, например, не интовым? Возможно ли будет делать инкримент для какого-либо другого типа данных? Т.е., даже если мы все int заменим на string, а потом в цикле for будем делать инкримент для нашего счётчика, удастся ли это? Не вылезет ли каких-то подводных камней?) Или в данном случае лучше будет использовать метод advance (и, если да, то какой параметр нужно будет передавать во втором параметре)?
@SimpleCodeIT
@SimpleCodeIT 6 жыл бұрын
Изменение типа данных учитывается.
@user-rc7fy5od7r
@user-rc7fy5od7r 5 жыл бұрын
Сергей, спасибо за урок! Как всегда очень познавательно! Вопрос: если использовать Vector, не со встроенными типа, а пользовательскими, то почему в процессе работы Vector'а вызываются дополнительные деструкторы пользовательского типа с непонятными адресами (конструкторов с этими адресами не было)?
@user-vs6kl8ph5v
@user-vs6kl8ph5v Жыл бұрын
что значит деструкторы с непонятными адресами?
@user-vs6kl8ph5v
@user-vs6kl8ph5v Жыл бұрын
вызываться деструкторы будут при добавлении в вектор новых элементов, если в нем закончилось место. при этом все элементы которые там уже были будут перемещены/скопированы и на старых местах удалены деструктором пользовательского класса, собственно вот он и вызывается
@overdoses1794
@overdoses1794 6 жыл бұрын
Здравствуйте, Сергей! Один вопрос, а за сколько вы выучили с++ и как эффективно обучаться, по вашему методу? И спасибо за урок!
@serhiyhrytsiuk4376
@serhiyhrytsiuk4376 6 жыл бұрын
Overdoses подозреваю, что Сергей до сих пор учит с++))). Язык настолько объёмный, что нужны годы практики на его изучение. По поводу изучения языка по видеоурокам, то на своём опыте скажу, что без регулярной практики всё забывается. Год уже как учу шарпы и о итераторах приза был.
@overdoses1794
@overdoses1794 6 жыл бұрын
тож, на пример всё ясно, а заходишь в компилятор и не можешь реализовать
@obww306
@obww306 7 ай бұрын
Спасибо вам Махмод Саборжанович Йсламбиков
@vadimk711
@vadimk711 6 ай бұрын
подсел на видео автора )) не могу понять, как закомментировать выделенные строки. При комбинации клавиш Ctrl+K или Ctrl+U появляются лишь какие-то флажки возле строки
@firerun8599
@firerun8599 4 жыл бұрын
А будут уроки по OpenGL?
@tarasenko_
@tarasenko_ 4 жыл бұрын
Вам следовало бы раньше рассказать про тип auto, которым можно было им заменять эту длиннющую запись vector::iterator :)
@princessmary5556
@princessmary5556 Жыл бұрын
На языке с++ не существует типа auto. Ключевое слово auto, так и называется "keyword auto". Это никакой не тип.
@bananchik3125
@bananchik3125 3 жыл бұрын
после такого придется подписаться
@user-mykyta_vyshniakov
@user-mykyta_vyshniakov 4 жыл бұрын
Добрый день! Не могу разобраться, возможно ли в vector записать информацию через cin ?
@aestheticsbody9623
@aestheticsbody9623 6 жыл бұрын
можно еще вот так делать MyVector.insert(it+3, 999); не писать -> advance(it, 3);
@user-vr1xw4ln7y
@user-vr1xw4ln7y 2 жыл бұрын
а как допустим применить функцию к объекту листа, вот допустим у меня содержатся в листе объекты класса персонажа, у которого есть функция движения, через массив можно написать arr[i].func(); а как в листе это сделать?
@liudasliudelis9666
@liudasliudelis9666 6 жыл бұрын
Dėkui
@armm6437
@armm6437 2 жыл бұрын
Оператор "квадратные скобочки" почему так угарно звучит)))
@sleepyNovember_project
@sleepyNovember_project 5 ай бұрын
Оператор индексации]]]
@NikolayForostiy
@NikolayForostiy 5 жыл бұрын
Интересная хрень:: когда тренировался с итераторами, решил изменить capasity на векторе, так вот итератор не переопределился на новый вектор .... наверное не существует механизма для этого в принципе. Ещё: если использовать метод insert(it,number) и после этого продолжить работу с итератором it advance(it, 4) или mas.erace(it), то нихрена не выйдет, ... даже если выкрутить capasity, т.е. сам итератор ломается.
@user-me4ul6my7r
@user-me4ul6my7r 3 жыл бұрын
Это достаточно легко объясняется. Изменение capacity связано с переаллокацией буфера, т.е. вектор начинает располагаться в другом участке памяти. А вот итераторы продолжают указывать на старые ячейки, в которых лежат уже не принадлежащие нам данные. В случае метода insert, новый элемент вставляется перед тем, на который итератор указывал, соответственно данные итератор теперь не корректны. Примечательно так же, что неправильными становятся и все итераторы, указывавшие на эл-ты следующие за вставленным(т.к. их делегаты сдвинулись).
@flickerstrike5525
@flickerstrike5525 Жыл бұрын
у меня в голове каша, может кто поможет, класс iterator унаследован от класса const_iterator (как говорится в видео) или всё же наоборот и автор просто ошибся? а то получается что методы класса-наследника применимы к объектам базового класса (голова сейчас треснет), где я запутался?
@user-be7jw6nl1p
@user-be7jw6nl1p 5 жыл бұрын
Здравствуйте , Сергей , вы сказали , что к элементам вектора можно обращаться через operator[] , но вот не задача , clang-tidy эту операцию очень ругает . Допустим у меня есть вектор пустой , и дальше его надо заполнить с клавиатуры for (int i = 0 ; i
@panda9303
@panda9303 4 жыл бұрын
Если у тебя вектор пустой то к нему нельзя обращаться через скобки, пытаясь добавить новый элемент тк получаешь ошибку сегментации памяти. Используй push_back (). Тут никакие итераторы не нужны.
@artemlatsyk1838
@artemlatsyk1838 5 жыл бұрын
У меня вопрос , myVector.end указывает на запасное место?
@princessmary5556
@princessmary5556 Жыл бұрын
На место, которое располагается сразу за последним элементом. Это не "запасное место". Это вообще уже "чужая память". Поэтому, к этой памяти нельзя обращаться.
@andrey-kramer
@andrey-kramer 5 жыл бұрын
> 3:10 имя массива - єто указатель на его первый элемент а разве не ссылка (&) ? П.С. до сих пор путаюсь с & и * в С\С++ > 15:00 можно ли в цикле for написать как условие итератор i != NULL ? (типа как аналогия с указателями != nil)
@princessmary5556
@princessmary5556 Жыл бұрын
Имя массива - это просто имя массива. К указателям не имеет никакого отношения. Вообще, даже просто формулировка некорректна из-за своей двусмысленности. Здесь будет уместна цитата Страуструпа: Имя обозначает (денотирует) объект, функцию, тип, значение или метку. Имя вводится в программе описанием (#8). Имя может использоваться только внутри области текста программы, называемой его областью видимости. Имя имеет тип, определяющий его использование. Объект - это область памяти. Объект имеет класс памяти, определяющий его время жизни. Смысл значения, обнаруженного в объекте, определяется типом имени, использованного для доступа к нему. (ц) Страуструп
@danbil4597
@danbil4597 5 жыл бұрын
14:28, Но при этом iterator = vector.end() будет указывать на последний элемент вектора
@user-fw1bf1qz1p
@user-fw1bf1qz1p 5 жыл бұрын
ну вообще то там нет присваивания
@panda9303
@panda9303 4 жыл бұрын
На самом деле этот итератор указывает не на последний элемент вектора, а на элемент за его пределом. Поэтому разыменовывать такой итератор нельзя. Поэтому там используется условие не равно !=
@Kokurorokuko
@Kokurorokuko 2 жыл бұрын
Просто операторы по-разному описаны
@princessmary5556
@princessmary5556 Жыл бұрын
Вы пишите: *iterator = vector.end() будет указывать на последний элемент вектора* Нет, не будет. Не путайте итератор на последний элемент (rbegin) с итератором, который указывает позицию, за последним элементом (end)
@molchanovalexy
@molchanovalexy 5 жыл бұрын
Как вывести значение итератора в textbox?
@tricking16
@tricking16 6 жыл бұрын
можно вот так- > MyVector.insert(it+3, 999); не писать -> advance(it, 3);
@777noob777saibot
@777noob777saibot 3 жыл бұрын
Как const iterator i являясь константным будет увеличиваться в цикле for c помощью инкримента i++ ? Я не понял.
@Elemtro_Hiro
@Elemtro_Hiro Жыл бұрын
Дело в том, что инкримент не увеличивает сам итератор, а только меняет его позицию на +1
@777noob777saibot
@777noob777saibot Жыл бұрын
@@Elemtro_Hiro я уже не помню своего вопроса
@sleepyNovember_project
@sleepyNovember_project 5 ай бұрын
@@Elemtro_Hiro выходит, несмотря на то что const_iterator... const, он всё равно позволяет работать с его позицией (изменять это значение), а const накладывается именно на доступ к данным контейнера через этот итератор
@viktor65366
@viktor65366 Жыл бұрын
Работаю через VS2019 и при попытке выполнить код на 19:39 ( cbegin() и cend() ) получаею ошибку С2039. Почему так и как решить?
@viktor65366
@viktor65366 Жыл бұрын
Разобрался. Когда я просто приписал "с" к методам, следуя указаниям автора, то компилятор выдавал ошибку. Но когда я стер метод и написал его заново, ошибка пропала... Сначала выпал в осадок от такой ситуации, а потом случайно заметил, что при приписывании "с" методам я использовал кириллицу :) Совсем забыл, что для компилятора с на кириллице и на латинице - это разные символы.
@sleepyNovember_project
@sleepyNovember_project 5 ай бұрын
@@viktor65366 😶... bro
@essea8405
@essea8405 5 жыл бұрын
Жалко что не рассмотрены двумерные вектора
@caskey99
@caskey99 4 жыл бұрын
я 35 600 просмотр
@egorsd2464
@egorsd2464 Жыл бұрын
Серёга даже на 2х медленный(
@marksmith1883
@marksmith1883 5 жыл бұрын
даже так работает vector myVector = { 12,232,323,231 }; vector::iterator it= myVector.begin(); for(int i=0; i
@svvonline1
@svvonline1 Жыл бұрын
Можно, конечно и так, но лучше вот так: vector myVector = { 12,232,323,231 }; for (auto it=myVector.bebgin();it!=MyVector.end();++it) cout
@ms77grz
@ms77grz Жыл бұрын
IiIukarno
@kosbarable
@kosbarable 5 жыл бұрын
не удобны, эти ваши, итераторы... Индексы, как числа, своим видом в процессе чтения кода несут информацию, а итератор это литерал и на какой именно он элемент указывает просто из одной строчки кода понять будет нелегко, придётся "рыть" вглубь.
@GorgeousPuree
@GorgeousPuree 5 жыл бұрын
мне тоже так кажется, непонятно существование этих итераторов... По крайней мере, если в конкретном случае можно реализовать массивом.
@princessmary5556
@princessmary5556 Жыл бұрын
@@GorgeousPuree итератор - паттерн, смысл которого: один и тот же код может пробежаться по элементам самых разных контейнеров, ничего не зная о деталях реализации их устройства. Другими словами, область примененеия итераторов - обобщенный код; ситуации, когда отсутствует конкретика, и заранее не известно, что именно прилетит в функцию: массив, или какой нибудь std::list, например.
@couscousburify
@couscousburify 6 жыл бұрын
Спасибо за урок.
@SimpleCodeIT
@SimpleCodeIT 6 жыл бұрын
Пожалуйста!
@mykhailomorhal2181
@mykhailomorhal2181 6 жыл бұрын
Большое Спасибо)
@user-re8yu3ij3w
@user-re8yu3ij3w 2 жыл бұрын
Спасибо!
@user-hb7er4ff9u
@user-hb7er4ff9u 2 жыл бұрын
спасибо
@STALINGRADETS
@STALINGRADETS 4 жыл бұрын
Спасибо за урок.
@DD0S2
@DD0S2 3 жыл бұрын
спасибо
NERF WAR HEAVY: Drone Battle!
00:30
MacDannyGun
Рет қаралды 54 МЛН
Vivaan  Tanya once again pranked Papa 🤣😇🤣
00:10
seema lamba
Рет қаралды 34 МЛН
He sees meat everywhere 😄🥩
00:11
AngLova
Рет қаралды 12 МЛН
Собеседование Junior C++
45:32
Ambushed Raccoon
Рет қаралды 103 М.
Зачем нужны указатели в C++?
8:14
Dima
Рет қаралды 3,6 М.
Микросервисы Простыми Словами за 1 Час
48:56
How To Learn Algorithms? Why? #codonaft
19:22
codonaft
Рет қаралды 564 М.
ITERATORS in C++
17:09
The Cherno
Рет қаралды 202 М.
NERF WAR HEAVY: Drone Battle!
00:30
MacDannyGun
Рет қаралды 54 МЛН