Rating@Mail.ru

Форум сайта "Виртуальная энциклопедия "Linux по-русски"


Текущее время: 22 май 2017, 22:16

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 16 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: Начала STL и контейнеры C++
Непрочитанное сообщениеДобавлено: 13 фев 2016, 17:48 
Не в сети
Писатель
Аватара пользователя

Зарегистрирован: 24 сен 2011, 14:22
Сообщения: 9420
Откуда: Харьков
Это цикл небольших (2-3-4 стр.) заметок в тему "Начала STL и контейнры C++" (это же и ссылка в блог, где вы их свободно найдёте :lol: ).
На сегодня их 6 шт.
Но в итоге, если не надоест, планируется 10 или чуть больше.

Это написано по случаю... Для народа самого начального уровня знакомства (никакого ;-) ).
Есть замечательная книга на предмет STL - Скотт Мейерс ... и ничего больше не надо.
Но ... я это написал:
а). по просьбе + максимально компактно ...
б). повязав аналогии с массивами ...
в). с учётом новых стандартов С99 и С++11 ... а это здорово влияет ;-) (перевод Мейерса вышел всё-таки аж в 2002 году)
г). под все рассуждения были написаны новые тестовые задачи, которые, как мне кажется, наилучшим образом показывают и объяснют STL ... при их максимальной краткости.


Вложения:
scott.jpg
scott.jpg [ 11.36 КБ | Просмотров: 3023 ]
Вернуться к началу
 Профиль Отправить личное сообщение  
 
 Заголовок сообщения: Re: Начала STL и контейнры C++
Непрочитанное сообщениеДобавлено: 15 фев 2016, 12:49 
Не в сети
Писатель
Аватара пользователя

Зарегистрирован: 24 сен 2011, 14:22
Сообщения: 9420
Откуда: Харьков
Olej писал(а):
На сегодня их 6 шт.

Уже 9. ;-)


Вернуться к началу
 Профиль Отправить личное сообщение  
 
 Заголовок сообщения: Re: Начала STL и контейнры C++
Непрочитанное сообщениеДобавлено: 20 фев 2016, 14:04 
Не в сети
Писатель
Аватара пользователя

Зарегистрирован: 24 сен 2011, 14:22
Сообщения: 9420
Откуда: Харьков
Olej писал(а):
Это цикл небольших (2-3-4 стр.) заметок в тему "Начала STL и контейнры C++" (это же и ссылка в блог, где вы их свободно найдёте :lol: ).

Поскольку блог этот оказался, в смысле работы редактора текста сообщений, полным говном, и опасаясь за сохранность ссылок заметок даже для самого себя, любимого, я уношу ссылки из блога, временно пока (???) сюда.
Пока идёт наполнений объёма.
Итак...
Цитата:
Это вот такой цикл коротеньких заметок по массивам C & C++, контейнерам STL, использованию их с применением новых синтаксических конструкций стандартов последнего времени: C99 и C++11 - всё это там сильно переплетается ... ну и всяких сопутствующих вопросов.

Этот цикл заметок, первоначально, появился по просьбе одного из сайтов, по обучению C++ начального уровня ... для пионеров, школьников и других нерадивых студентов... Но со временем заметки стали обрастать подробностями, а заказчики мягко выражать неудовольствие, что всё это становится слишком длинно и заумно. Упрощать описание до уровня "на пальцах" не хочется, но и потерять сделанное жалко, независимо от того, опубликует ли это обучающий сайт и в каком виде. Тем более, что материал стал обрастать интересными подробностями (жить своей жизнью), особенно на стыке с выразительными средствами стандартов C99 и C++11, позволяющих значительно упростить использование. А в литературе этого не найти, потому что очень свежие вещи.В итоге, решил я это всё хозяйство задублировать сюда в блог. Тем более, что всплывают всякие нетривиальные детали, каждая из частей обрастает обновлениями (и ещё будут), и это уже далеко не тот текст, который появился первоначально. Может кому-то ещё это покажется интересным.

Естественно, все заметки сопровождаются короткими примерами иллюстрирующего кода. Весь код написан "с нуля" под эти тексты. Поскольку кода не много, все примеры кода, ко многим частям собственно заметок, собраны в один архив. Но соответствие кода частям текста очень легко восстановить по именам файлов примеров, которые фигурируют в тексте. Архив кодов можете взять на Yandex или на Google (архив будет обновляться, но эти ссылки будут корректироваться на актальную версию).

Вопрос (спрашивают): почему названия, ссылки и даты последних редакций там сильно "пляшут", даже давно размещённые части, из самых первых?
Ответ: потому, что, идя навстречу пожеланиям трудящихся, я сделал то, чего никогда не делаю - выверил и скорректировал коды примеров в виртуальной машине с Windows 7, в среде IDE Code::Blocks 2013.

А сами тексты - вот они (ссылки бeдут помещаться и обновляться по мере выверки и размещения):


Далее ... архивы примеров кодов: на Yandex и на Google - свежак по состоянию на 20.02.


Вернуться к началу
 Профиль Отправить личное сообщение  
 
 Заголовок сообщения: Re: Начала STL и контейнры C++
Непрочитанное сообщениеДобавлено: 20 фев 2016, 14:29 
Не в сети
Писатель
Аватара пользователя

Зарегистрирован: 24 сен 2011, 14:22
Сообщения: 9420
Откуда: Харьков
Olej писал(а):
Далее ... архивы примеров кодов: на Yandex и на Google - свежак по состоянию на 20.02.


Теперь по самим текстам, по частям:

Массивы со статической и динамической размерностью. Часть 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


Вернуться к началу
 Профиль Отправить личное сообщение  
 
 Заголовок сообщения: Re: Начала STL и контейнры C++
Непрочитанное сообщениеДобавлено: 20 фев 2016, 19:08 
Не в сети
Писатель
Аватара пользователя

Зарегистрирован: 24 сен 2011, 14:22
Сообщения: 9420
Откуда: Харьков
Olej писал(а):
Цитата:
Вопрос (спрашивают): почему названия, ссылки и даты последних редакций там сильно "пляшут", даже давно размещённые части, из самых первых?
Ответ: потому, что, идя навстречу пожеланиям трудящихся, я сделал то, чего никогда не делаю - выверил и скорректировал коды примеров в виртуальной машине с Windows 7, в среде IDE Code::Blocks 2013.


На этом месте стоило бы остановиться подробнее...
Библиотека шаблонных классов C++ пришла из Boost, куда она пришла, соответственно, из STL ... начиная от фирмы HP.
Эта часть делалась не только (первоначально) для создания высоко уровневых структур и алгоритмов работы с ними, но и для обеспечения большей переносимости, меньшей зависимости от операционной системы.
Избежать зависимости полностью, похоже, невозможно (если не считать препроцессорные #define / #ifdef), но в значительной степени можно.
Вот из этих соображений практически весь код примеров был переписан.
И в итоге всё это пригодно и для ... другой ОС :lol:


Вложения:
vect3.png
vect3.png [ 19.05 КБ | Просмотров: 2938 ]
map1.png
map1.png [ 20.68 КБ | Просмотров: 2938 ]
map2.png
map2.png [ 19.67 КБ | Просмотров: 2938 ]
algo2.png
algo2.png [ 18.2 КБ | Просмотров: 2938 ]
Вернуться к началу
 Профиль Отправить личное сообщение  
 
 Заголовок сообщения: Re: Начала STL и контейнры C++
Непрочитанное сообщениеДобавлено: 20 фев 2016, 21:58 
Не в сети
Писатель
Аватара пользователя

Зарегистрирован: 24 сен 2011, 14:22
Сообщения: 9420
Откуда: Харьков
Olej писал(а):
... архивы примеров кодов: на Yandex и на Google - свежак по состоянию на 20.02.


Архив: на Yandex и на Google

Сортировка. Часть 12
Редакция от 19.02.2016, ссылка на Yandex и на Google

Сортировка структур. Часть 13
Редакция от 19.02.2016, ссылка на Yandex и на Google


Вернуться к началу
 Профиль Отправить личное сообщение  
 
 Заголовок сообщения: Re: Начала STL и контейнры C++
Непрочитанное сообщениеДобавлено: 26 фев 2016, 02:19 
Не в сети
Писатель
Аватара пользователя

Зарегистрирован: 24 сен 2011, 14:22
Сообщения: 9420
Откуда: Харьков
Olej писал(а):
Архив: на Yandex и на Google


Архив: на 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 КБ]
Скачиваний: 127
Вернуться к началу
 Профиль Отправить личное сообщение  
 
 Заголовок сообщения: Re: Начала STL и контейнеры C++
Непрочитанное сообщениеДобавлено: 09 мар 2016, 02:39 
Не в сети
Писатель
Аватара пользователя

Зарегистрирован: 24 сен 2011, 14:22
Сообщения: 9420
Откуда: Харьков
Занятные кое в чём статейки по STL, там есть мелкие любопытные детали, в то время как в подавляющем большинстве публикаций по теме только переписывают друг у друга бла-бла-бла:

Справочник по C++ STL. Итераторы

Итераторы библиотеки STL.
Цитата:
Дмитрий Рамодин

Нелегкая выпала доля тем, кто связал свою жизнь с программированием на языке Cи++. На мой взгляд, для изготовления Cи++ был изуродован прекраснейший язык Cи. Мало того, Cи++ мутирует чуть ли не каждый квартал, постепенно превращаясь в игрушку-трансформер, а сам автор Си++ вынужден выпускать одну книжку за другой для толкования своего детища. С внедрением языка Си++ в коммерческую разработку резко упала надежность программного обеспечения, что пользователи прочувствовали на своей шкуре. Чрезмерная избыточность языка Cи++ привела к тому, что один и тот же алгоритм каждый программист кодирует по-своему и, в соответствии с законами Мерфи и Питерса, не самым оптимальным способом. А надо сказать, что Си++ - просто бескрайнее море перегруженных операторов. Однако нашлись люди, предложившие некую надстройку над Си++, существенно упростившую работу с этим языком и сделавшую ее довольно комфортной. Среди них выделяется фигура нашего соотечественника г-на Степанова, перебравшегося в Америку и создавшего библиотеку Standard Template Library (STL). Теперь это чудо программистской мысли стало частью чернового стандарта языка Си++.
...


(я буду оставлять для памятки только те ссылки, которые мне чем-то приглянулись ... вам могут понравиться совсем другие ;-) )

Функторы, предикаты, функциональные адаптеры, лямбда-функции

Обобщенные алгоритмы в алфавитном порядке


Вернуться к началу
 Профиль Отправить личное сообщение  
 
 Заголовок сообщения: Re: Начала STL и контейнры C++
Непрочитанное сообщениеДобавлено: 17 мар 2016, 12:30 
Не в сети
Писатель
Аватара пользователя

Зарегистрирован: 24 сен 2011, 14:22
Сообщения: 9420
Откуда: Харьков
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


Вернуться к началу
 Профиль Отправить личное сообщение  
 
 Заголовок сообщения: Re: Начала STL и контейнеры C++
Непрочитанное сообщениеДобавлено: 18 мар 2016, 02:04 
Не в сети
Писатель
Аватара пользователя

Зарегистрирован: 24 сен 2011, 14:22
Сообщения: 9420
Откуда: Харьков
Леен Аммерааль, STL для программистов на C++, М.: ДМК, 1999, ISBN: 5-89818-027-3
Вложение:
9337f9e869e6063be307e2ad5c8ff6d1.jpg
9337f9e869e6063be307e2ad5c8ff6d1.jpg [ 27.95 КБ | Просмотров: 2297 ]


Дэвид Р.Мюссер, Атул Сейни, Жилмер Дж. Дердж, C++ и STL: справочное руководство, М.: Вильямс, 2010, ISBN: 978-5-8459-1665-5 — 432 стр.
Вложение:
787294.jpg
787294.jpg [ 7.93 КБ | Просмотров: 2297 ]

http://nnm-club.me/forum/viewtopic.php?t=274422


Вернуться к началу
 Профиль Отправить личное сообщение  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 16 ]  На страницу 1, 2  След.

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 0


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB
[ Time : 0.079s | 22 Queries | GZIP : On ]