Начала STL и контейнеры C++
- Olej
- Писатель
- Сообщения: 21338
- Зарегистрирован: 24 сен 2011, 14:22
- Откуда: Харьков
- Контактная информация:
Начала STL и контейнеры C++
Это цикл небольших (2-3-4 стр.) заметок в тему "Начала STL и контейнры C++" (это же и ссылка в блог, где вы их свободно найдёте ).
На сегодня их 6 шт.
Но в итоге, если не надоест, планируется 10 или чуть больше.
Это написано по случаю... Для народа самого начального уровня знакомства (никакого ).
Есть замечательная книга на предмет STL - Скотт Мейерс ... и ничего больше не надо.
Но ... я это написал:
а). по просьбе + максимально компактно ...
б). повязав аналогии с массивами ...
в). с учётом новых стандартов С99 и С++11 ... а это здорово влияет (перевод Мейерса вышел всё-таки аж в 2002 году)
г). под все рассуждения были написаны новые тестовые задачи, которые, как мне кажется, наилучшим образом показывают и объяснют STL ... при их максимальной краткости.
На сегодня их 6 шт.
Но в итоге, если не надоест, планируется 10 или чуть больше.
Это написано по случаю... Для народа самого начального уровня знакомства (никакого ).
Есть замечательная книга на предмет STL - Скотт Мейерс ... и ничего больше не надо.
Но ... я это написал:
а). по просьбе + максимально компактно ...
б). повязав аналогии с массивами ...
в). с учётом новых стандартов С99 и С++11 ... а это здорово влияет (перевод Мейерса вышел всё-таки аж в 2002 году)
г). под все рассуждения были написаны новые тестовые задачи, которые, как мне кажется, наилучшим образом показывают и объяснют STL ... при их максимальной краткости.
- Вложения
-
- scott.jpg (11.36 КБ) 7280 просмотров
- Olej
- Писатель
- Сообщения: 21338
- Зарегистрирован: 24 сен 2011, 14:22
- Откуда: Харьков
- Контактная информация:
Re: Начала STL и контейнры C++
Уже 9.Olej писал(а): На сегодня их 6 шт.
- Olej
- Писатель
- Сообщения: 21338
- Зарегистрирован: 24 сен 2011, 14:22
- Откуда: Харьков
- Контактная информация:
Re: Начала STL и контейнры C++
Поскольку блог этот оказался, в смысле работы редактора текста сообщений, полным говном, и опасаясь за сохранность ссылок заметок даже для самого себя, любимого, я уношу ссылки из блога, временно пока (???) сюда.Olej писал(а):Это цикл небольших (2-3-4 стр.) заметок в тему "Начала STL и контейнры C++" (это же и ссылка в блог, где вы их свободно найдёте ).
Пока идёт наполнений объёма.
Итак...
Далее ... архивы примеров кодов: на Yandex и на Google - свежак по состоянию на 20.02.Это вот такой цикл коротеньких заметок по массивам C & C++, контейнерам STL, использованию их с применением новых синтаксических конструкций стандартов последнего времени: C99 и C++11 - всё это там сильно переплетается ... ну и всяких сопутствующих вопросов.
Этот цикл заметок, первоначально, появился по просьбе одного из сайтов, по обучению C++ начального уровня ... для пионеров, школьников и других нерадивых студентов... Но со временем заметки стали обрастать подробностями, а заказчики мягко выражать неудовольствие, что всё это становится слишком длинно и заумно. Упрощать описание до уровня "на пальцах" не хочется, но и потерять сделанное жалко, независимо от того, опубликует ли это обучающий сайт и в каком виде. Тем более, что материал стал обрастать интересными подробностями (жить своей жизнью), особенно на стыке с выразительными средствами стандартов C99 и C++11, позволяющих значительно упростить использование. А в литературе этого не найти, потому что очень свежие вещи.В итоге, решил я это всё хозяйство задублировать сюда в блог. Тем более, что всплывают всякие нетривиальные детали, каждая из частей обрастает обновлениями (и ещё будут), и это уже далеко не тот текст, который появился первоначально. Может кому-то ещё это покажется интересным.
Естественно, все заметки сопровождаются короткими примерами иллюстрирующего кода. Весь код написан "с нуля" под эти тексты. Поскольку кода не много, все примеры кода, ко многим частям собственно заметок, собраны в один архив. Но соответствие кода частям текста очень легко восстановить по именам файлов примеров, которые фигурируют в тексте. Архив кодов можете взять на Yandex или на Google (архив будет обновляться, но эти ссылки будут корректироваться на актальную версию).
Вопрос (спрашивают): почему названия, ссылки и даты последних редакций там сильно "пляшут", даже давно размещённые части, из самых первых?
Ответ: потому, что, идя навстречу пожеланиям трудящихся, я сделал то, чего никогда не делаю - выверил и скорректировал коды примеров в виртуальной машине с Windows 7, в среде IDE Code::Blocks 2013.
А сами тексты - вот они (ссылки бeдут помещаться и обновляться по мере выверки и размещения):
- Olej
- Писатель
- Сообщения: 21338
- Зарегистрирован: 24 сен 2011, 14:22
- Откуда: Харьков
- Контактная информация:
Re: Начала STL и контейнры C++
Теперь по самим текстам, по частям:
Массивы со статической и динамической размерностью. Часть 1
Редакция от 19.02.2016, ссылка на Yandex и на Google
Контейнеры STL. Часть 2
Редакция от 19.02.2016, ссылка на Yandex и на Google
Контейнеры STL: vector. Часть 3
Редакция от 19.02.2016, ссылка на Yandex и на Google
Контейнеры STL: list. Часть 4
Редакция от 19.02.2016, ссылка на Yandex и на Google
Классы string и wstring. Часть 5
Редакция от 19.02.2016, ссылка на Yandex и на Google
Ассоциативные контейнеры STL. Часть 6
Редакция от 19.02.2016, ссылка на Yandex и на Google
Контейнеры STL: map. Часть 7
Редакция от 19.02.2016, ссылка на Yandex и на Google
Контейнеры STL: multimap. Часть 8
Редакция от 19.02.2016, ссылка на Yandex и на Google
Контейнеры STL: set и multiset. Часть 9
Редакция от 19.02.2016, ссылка на Yandex и на Google
Алгоритмы. Часть 10
Редакция от 19.02.2016, ссылка на Yandex и на Google
Функциональные объекты. Часть 11
Редакция от 19.02.2016, ссылка на Yandex и на Google
- Olej
- Писатель
- Сообщения: 21338
- Зарегистрирован: 24 сен 2011, 14:22
- Откуда: Харьков
- Контактная информация:
Re: Начала STL и контейнры C++
На этом месте стоило бы остановиться подробнее...Olej писал(а):Вопрос (спрашивают): почему названия, ссылки и даты последних редакций там сильно "пляшут", даже давно размещённые части, из самых первых?
Ответ: потому, что, идя навстречу пожеланиям трудящихся, я сделал то, чего никогда не делаю - выверил и скорректировал коды примеров в виртуальной машине с Windows 7, в среде IDE Code::Blocks 2013.
Библиотека шаблонных классов C++ пришла из Boost, куда она пришла, соответственно, из STL ... начиная от фирмы HP.
Эта часть делалась не только (первоначально) для создания высоко уровневых структур и алгоритмов работы с ними, но и для обеспечения большей переносимости, меньшей зависимости от операционной системы.
Избежать зависимости полностью, похоже, невозможно (если не считать препроцессорные #define / #ifdef), но в значительной степени можно.
Вот из этих соображений практически весь код примеров был переписан.
И в итоге всё это пригодно и для ... другой ОС
- Olej
- Писатель
- Сообщения: 21338
- Зарегистрирован: 24 сен 2011, 14:22
- Откуда: Харьков
- Контактная информация:
Re: Начала STL и контейнры C++
Архив: на Yandex и на Google
Обобщённые численные алгоритмы. Часть 14
Редакция от 21.02.2016, ссылка на Yandex и на Google
Адаптеры. Часть 15
Редакция от 21.02.2016, ссылка на Yandex и на Google
Указатели в контейнерах. Часть 16
Редакция от 22.02.2016, ссылка на Yandex и на Google
Что почитать? Часть 17
Редакция от 23.02.2016, ссылка на Yandex и на Google
Кого заинтересуют только C++ код примеров - прикрепляю его и сюда, дополнительно.
- Вложения
-
- examples.8.tgz
- (80.22 КБ) 299 скачиваний
- Olej
- Писатель
- Сообщения: 21338
- Зарегистрирован: 24 сен 2011, 14:22
- Откуда: Харьков
- Контактная информация:
Re: Начала STL и контейнеры C++
Занятные кое в чём статейки по STL, там есть мелкие любопытные детали, в то время как в подавляющем большинстве публикаций по теме только переписывают друг у друга бла-бла-бла:
Справочник по C++ STL. Итераторы
Итераторы библиотеки STL.
Функторы, предикаты, функциональные адаптеры, лямбда-функции
Обобщенные алгоритмы в алфавитном порядке
Справочник по C++ STL. Итераторы
Итераторы библиотеки STL.
(я буду оставлять для памятки только те ссылки, которые мне чем-то приглянулись ... вам могут понравиться совсем другие )Дмитрий Рамодин
Нелегкая выпала доля тем, кто связал свою жизнь с программированием на языке Cи++. На мой взгляд, для изготовления Cи++ был изуродован прекраснейший язык Cи. Мало того, Cи++ мутирует чуть ли не каждый квартал, постепенно превращаясь в игрушку-трансформер, а сам автор Си++ вынужден выпускать одну книжку за другой для толкования своего детища. С внедрением языка Си++ в коммерческую разработку резко упала надежность программного обеспечения, что пользователи прочувствовали на своей шкуре. Чрезмерная избыточность языка Cи++ привела к тому, что один и тот же алгоритм каждый программист кодирует по-своему и, в соответствии с законами Мерфи и Питерса, не самым оптимальным способом. А надо сказать, что Си++ - просто бескрайнее море перегруженных операторов. Однако нашлись люди, предложившие некую надстройку над Си++, существенно упростившую работу с этим языком и сделавшую ее довольно комфортной. Среди них выделяется фигура нашего соотечественника г-на Степанова, перебравшегося в Америку и создавшего библиотеку Standard Template Library (STL). Теперь это чудо программистской мысли стало частью чернового стандарта языка Си++.
...
Функторы, предикаты, функциональные адаптеры, лямбда-функции
Обобщенные алгоритмы в алфавитном порядке
- Olej
- Писатель
- Сообщения: 21338
- Зарегистрирован: 24 сен 2011, 14:22
- Откуда: Харьков
- Контактная информация:
Re: Начала STL и контейнры C++
Большая ревизия (давно не обновлял):Olej писал(а): Теперь по самим текстам, по частям:
Архив примеров кода на Yandex и на Google
И тексты (разбивка частей несколько поменялась):
Массивы со статической и динамической размерностью. Часть 1
Редакция 07, от 25.02.2016, ссылка на Yandex и на Google
Контейнеры STL. Часть 2
Редакция 10, от 05.03.2016, ссылка на Yandex и на Google
Контейнеры STL: vector. Часть 3
Редакция 07, от 02.03.2016, ссылка на Yandex и на Google
Контейнеры STL: list. Часть 4
Редакция 08, от 16.03.2016, ссылка на Yandex и на Google
Классы string и wstring. Часть 5
Редакция 06, от 19.02.2016, ссылка на Yandex и на Google
Ассоциативные контейнеры STL. Часть 6
Редакция 06, от 07.03.2016, ссылка на Yandex и на Google
Контейнеры STL: map. Часть 7
Редакция 03, от 19.02.2016, ссылка на Yandex и на Google
Контейнеры STL: multimap. Часть 8
Редакция 04, от 19.02.2016, ссылка на Yandex и на Google
Контейнеры STL: set и multiset. Часть 9
Редакция 03, от 19.02.2016, ссылка на Yandex и на Google
Итераторы ввода-вывода. Часть 9A
Редакция 02, от 15.03.2016, ссылка на Yandex и на Google
(некоторых частей не было вообще в предыдущих редакциях, они вставные, чтобы не нарушать порядок именования частей они идут с буквенным индексом)
Алгоритмы. Часть 10
Редакция 04, от 21.02.2016, ссылка на Yandex и на Google
Функциональные объекты. Часть 11
Редакция 04, от 20.02.2016, ссылка на Yandex и на Google
Сортировка. Часть 12
Редакция 03, от 20.02.2016, ссылка на Yandex и на Google
Сортировка структур. Часть 13
Редакция 03, от 20.02.2016, ссылка на Yandex и на Google
Обобщённые численные алгоритмы. Часть 14
Редакция 02, от 21.02.2016, ссылка на Yandex и на Google
Скалярное произведение, фильтрация. Часть 14B
Редакция 03, от 16.03.2016, ссылка на Yandex и на Google
Другие обобщённые алгоритмы. Часть 14C
Редакция 02, от 17.03.2016, ссылка на Yandex и на Google
Обобщённые алгоритмы на массивах. Часть 14Z
Редакция 01, от 16.03.2016, ссылка на Yandex и на Google
Адаптеры. Часть 15
Редакция 02, от 22.02.2016, ссылка на Yandex и на Google
Указатели в контейнерах. Часть 16
Редакция 02, от 24.02.2016, ссылка на Yandex и на Google
Что почитать? Часть 17
Редакция 03, от 23.02.2016, ссылка на Yandex и на Google
- Olej
- Писатель
- Сообщения: 21338
- Зарегистрирован: 24 сен 2011, 14:22
- Откуда: Харьков
- Контактная информация:
Re: Начала STL и контейнеры C++
Леен Аммерааль, STL для программистов на C++, М.: ДМК, 1999, ISBN: 5-89818-027-3
http://nnm-club.me/forum/viewtopic.php?t=274422
Дэвид Р.Мюссер, Атул Сейни, Жилмер Дж. Дердж, C++ и STL: справочное руководство, М.: Вильямс, 2010, ISBN: 978-5-8459-1665-5 — 432 стр.
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 3 гостя