С Новым годом! Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.82/11: Рейтинг темы: голосов - 11, средняя оценка - 4.82
0 / 0 / 0
Регистрация: 16.10.2012
Сообщений: 58

Какая-нибудь книга по STL, только чтобы с нуля и основательно

02.11.2014, 23:52. Показов 2385. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, не подскажите какую-нибудь книгу по STL только чтобы с нуля и основательно, советовали "Эффективное использование STL" но там не с нуля, а скорее советы как выжать максимум эффективности, а мне надо именно прочитать основы об итераторах контейнерах и так далее!Заранее спасибо за помощь !
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
02.11.2014, 23:52
Ответы с готовыми решениями:

Какая вероятность того, что сумма этих чисел будет больше нуля, а произведение меньше нуля ?
С отрезка наугад взяли два числа. Какая вероятность того, что их сумма будет больше нуля, а произведение меньше нуля ?

Как сделать так, чтобы при нажатии кнопки на дочернем окне, в родительском окне открылась какая-нибудь страница ?
Как сделать так, чтобы при нажатии кнопки на дочернем окне, в родительском окне открылась какая-нибудь страница ? При этом, поп-ап нужно...

Есть ли какие-нибудь настройки в InterDev, чтобы подсвечивать синтаксис не только *.asp файлов.
Я что-то не нашел, а мне хочеться что-бы например файлы с раширением *.pasp среда воспринимала как asp'шные файлы, то есть подсветка,...

9
2784 / 1937 / 570
Регистрация: 05.06.2014
Сообщений: 5,602
03.11.2014, 00:29
а мне надо именно прочитать основы об итераторах контейнерах и так далее!
Что там читать то?
1) Работа с итератором на 90% аналогична работе с указателем (*, ->, ++, -- имеют тот же самый эффект). Некоторые отличия есть (скажем, не все итераторы можно вычитать друг из друга), но это уже не совсем основы.
2) У контейнеров хранящих сразу пачку значений (std::vector, std::map и так далее) есть методы begin и end. begin возвращает итератор указывающий на начало содержимого контейнера, end - итератор указывающий на конец контейнера. Для любого такого контейнера можно написать for(std::some_container::iterator pos=X.begin();pos!=X.end();++pos) и пробежаться по всему его содержимому. В C++11 - for(auto pos:X). Да, это тоже "для всего".

Остальное - технические подробности типа "попытка изменить вектор приводит к тому что все старые итераторы/указатели становятся невалидны". www.cplusplus.com в помощь.
1
5500 / 4895 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
03.11.2014, 01:00
Лучший ответ Сообщение было отмечено IrineK как решение

Решение

Мюссер Д., Дердж Ж., Сейни А. "C++ и STL. Справочное руководство".
Л.Аммерааль "STL для программистов на C++".
3
Эксперт С++
 Аватар для Mr.X
3225 / 1752 / 436
Регистрация: 03.05.2010
Сообщений: 3,867
03.11.2014, 05:26
Цитата Сообщение от Renji Посмотреть сообщение
Что там читать то?
Цитата Сообщение от Renji Посмотреть сообщение
Для любого такого контейнера можно написать for
Ну, хотя бы для того, чтобы узнать, что для обработки контейнеров существуют алгоритмы, из-за которых Степанов и написал STL, обрабатывать их циклами - это сишничество чистейшей воды.
0
2784 / 1937 / 570
Регистрация: 05.06.2014
Сообщений: 5,602
03.11.2014, 07:50
Цитата Сообщение от Mr.X Посмотреть сообщение
Ну, хотя бы для того, чтобы узнать, что для обработки контейнеров существуют алгоритмы, из-за которых Степанов и написал STL, обрабатывать их циклами - это сишничество чистейшей воды.
И каким же алгоритмом, скажем, распечатать пронумерованный список элементов std::map? Нет, несколько повседневных задач (сортировка и поиск) алгоритмы действительно решают, но это ни разу не панацея от использования циклов. И чтива на эту тему - несколько страниц документации.
0
Эксперт С++
 Аватар для Mr.X
3225 / 1752 / 436
Регистрация: 03.05.2010
Сообщений: 3,867
03.11.2014, 08:04
Цитата Сообщение от Renji Посмотреть сообщение
И каким же алгоритмом, скажем, распечатать пронумерованный список элементов std::map?
Распечатать - это на консоль вывести что ли? Если оператор << для его элементов перегружен, то std::copy, в противном случае std::for_each.
0
2784 / 1937 / 570
Регистрация: 05.06.2014
Сообщений: 5,602
03.11.2014, 08:26
Цитата Сообщение от Mr.X Посмотреть сообщение
Распечатать - это на консоль вывести что ли? Если оператор << для его элементов перегружен, то std::copy, в противном случае std::for_each.
value_type любого std::map это pair<const key_type,mapped_type>. Разумеется, никакие << для них не перегружены. А std::for_each хочет отдельно объявленный функтор. Да, теоретически этот функтор можно написать, но конструкция получится гораздо более громозкой чем обычный цикл.
0
Эксперт С++
 Аватар для Mr.X
3225 / 1752 / 436
Регистрация: 03.05.2010
Сообщений: 3,867
03.11.2014, 08:57
Цитата Сообщение от Renji Посмотреть сообщение
Разумеется, никакие << для них не перегружены
А кто мешает перегрузить?
Цитата Сообщение от Renji Посмотреть сообщение
Да, теоретически этот функтор можно написать, но конструкция получится гораздо более громозкой чем обычный цикл.
Ну, при наличии лямбда-функций с написанием функторов вообще никаких проблем. Конструкции с циклом и с std::for_each c функтором, описывающим итерацию цикла, семантически эквивалентны, однако специалисты советуют применять именно алгоритмы, так как это является стандартной идиомой, и при их использовании вероятность сделать ошибку гораздо меньше, чем при сочинении самопального цикла.
0
2784 / 1937 / 570
Регистрация: 05.06.2014
Сообщений: 5,602
03.11.2014, 09:16
Цитата Сообщение от Mr.X Посмотреть сообщение
А кто мешает перегрузить?
Громозкость итоговой конструкции. Для работы через std::copy нужно использовать std::ostream_iterator и перегрузку операторов. Через циклы все делается в две коротких строчки.
C++
1
2
for(auto pos:my_map)
    cout<<pos.second<<endl;
Цитата Сообщение от Mr.X Посмотреть сообщение
Ну, при наличии лямбда-функций с написанием функторов вообще никаких проблем.
Лямбда-функции есть только в C++11. Но в C++11 for-each циклы сделаны частью синтаксиса языка (смотри пример выше). На кой черт заменять стандартный синтаксис на шаблоны std?
0
Эксперт С++
 Аватар для Mr.X
3225 / 1752 / 436
Регистрация: 03.05.2010
Сообщений: 3,867
03.11.2014, 11:11
Цитата Сообщение от Renji Посмотреть сообщение
for-each циклы сделаны частью синтаксиса языка
Убедили, с такими циклами я согласен, но все равно считаю, что алгоритмы должны иметь приоритет над циклами.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
03.11.2014, 11:11
Помогаю со студенческими работами здесь

Книга по STL
Всем привет! Хотелось бы изучить STL, но не знаю какую книгу купить. Джосьютиса уже нет в продаже.Видел вот эту...

Новая книга по С# с нуля, но мощно
Комрады, не бейте ногами сразу) С# пока не изучал... Киндер учится на 2-ом курсе колледжа - по программированию... Попросил хорошую...

Нужна книга для полного нуля в программировании
Я полный ноль в программировании, особого опыта не имею, школьник собственно, 8 класс, можете посоветовать какие-либо книги по С++, ведь у...

Гостевая книга! Ну хоть кто-нибудь!
Люди подскажите дурачку как написать, самому гостевую книгу!!!!! Помогите начинающему!

Какая книга лучше?
Какую книгу по алгоритмам прочитать лучше -&quot;Алгоритмы.Построение и анализ&quot; Кормена или &quot;Фундаментальные алгоритмы на С++&quot;...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru