Сборники для подготовки егэ обществознанию. Лучшие учебники для подготовки к егэ по обществознанию. Литература в помощь

Предисловие

«...На нем не было ленточки! Не было ярлыка! Не было коробки и не было мешка!»

Доктор Зюсс, «Как Гринч украл Рождество»

Я впервые написал о STL (Standard Template Library) в 1995 году. Моя книга «More Effective С++» завершалась кратким обзором библиотеки. Но этого оказалось недостаточно, и вскоре я начал получать сообщения с вопросом, когда будет написана книга «Effective STL».

Несколько лет я сопротивлялся этой идее. Сначала я не обладал достаточным опытом программирования STL и не считал возможным давать советы. Но время шло, и на смену этой проблеме пришли другие. Бесспорно, появление библиотеки означало прорыв в области эффективной масштабируемой архитектуры, но в области использования STL возникали чисто практические проблемы, на которые было невозможно закрывать глаза. Адаптация любых программ STL, за исключением самых простейших, была сопряжена с множеством проблем, что объяснялось не только различиями в реализациях, но и разным уровнем поддержки шаблонов компиляторов. Учебники по STL были редкостью, поэтому постижение «дао программирования в STL» оказывалось задачей непростой. А как только программист справлялся с этой трудностью, возникала другая - поиск достаточно полной и точной справочной документации. Даже самая мелкая ошибка при использовании STL сопровождалась лавиной диагностических сообщений компилятора, длина которых достигала нескольких тысяч символов, причем в большинстве случаев речь шла о классах, функциях и шаблонах, не упоминавшихся в программе. При всем уважении к STL и разработчикам этой библиотеки я не решался рекомендовать ее программистам среднего звена. Я не был уверен в том, что STL можно использовать эффективно.

Затем я заметил нечто удивительное. Несмотря на все проблемы с переносом и скверное качество документации, несмотря на сообщения компилятора, напоминавшие бессмысленное нагромождение символов, многие из моих клиентов все равно работали с STL. Более того, они не просто экспериментировали с библиотекой, а использовали ее в коммерческих версиях своих программ! Для меня это

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

Более того, я знал, что ситуация с STL будет улучшаться. Библиотеки и компиляторы будут постепенно приближаться к требованиям Стандарта (так оно и было), появится качественная документация (см. список литературы на с. 203), а диагностика компилятора станет более вразумительной (в этой области ситуация оставляет желать лучшего, но рекомендации совета 49 помогут вам с расшифровкой сообщений). В общем, я решил внести свою лепту в движение STL. Так появилась эта книга - 50 практических советов по использованию STL в С++.

Сначала я намеревался написать книгу за вторую половину 1999 г. и даже набросал ее примерную структуру. Но потом планы изменились, я приостановил работу над книгой и разработал вводный курс по STL, который преподавался нескольким группам программистов. Примерно через год я вернулся к книге и значительно расширил материал на основании опыта, полученного за время преподавания. В книге я постарался осветить практические аспекты программирования в STL, особенно важные для профессиональных программистов.

Скотт Дуглас Мейерс Стаффорд, Орегон Апрель 2001 г.

Из книги C++ автора Хилл Мюррей

Предисловие Язык формирует наш способ мышления и определяет, о чем мы можем мыслить. Б.Л. Ворф С++ – это универсальный язык программирования, задуманный так, чтобы сделать программирование более приятным для серьезного программиста. За исключением второстепенных

Из книги Музыкальный центр на компьютере автора Леонтьев Виталий Петрович

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

Из книги Microsoft Office автора Леонтьев Виталий Петрович

Предисловие Нет никакого сомнения, что так называемые офисные программы – Самые Популярные и Самые Полезные программы из всех, которые только могут обитать в железном чреве вашего компьютера. И если вы уже умеете запускать компьютер, устанавливать программы, работать с

Из книги Процессы жизненного цикла программных средств автора Автор неизвестен

Из книги ИНФОРМАЦИОННАЯ ТЕХНОЛОГИЯ. РУКОВОДСТВО ПО УПРАВЛЕНИЮ ДОКУМЕНТИРОВАНИЕМ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ автора Автор неизвестен

Предисловие 1. РАЗРАБОТАН И ВНЕСЕН Техническим комитетом по стандартизации ТК 22 «Информационная технология»2. УТВЕРЖДЕН И ВВЕДЕН В ДЕЙСТВИЕ Постановлением Госстандарта России от 20.12.93 № 260Стандарт подготовлен на основе применения аутентичного текста технических

Из книги Человеческий фактор в программировании автора Константин Ларри Л

Предисловие Другая сторона программного обеспеченияЭта книга о другой стороне программного обеспечения - той, что смотрит во внешний мир. Эта сторона компьютеров касается людей - технарей, как вы и я, и обычных людей, как вы и я. В собранных здесь заметках исследуются

Из книги 300 лучших программ на все случаи жизни автора Леонтьев Виталий Петрович

Предисловие У всех Самых Необходимых Вещей в этом мире есть одно пренеприятнейшее свойство: в нужный момент их никогда не оказывается под рукой. Следствие ли это пресловутого «закона бутерброда» или элементарной человеческой рассеянности – науке неведомо. Итог все

Из книги BPwin и Erwin. CASE-средства для разработки информационных систем автора

Предисловие Создание современных информационных систем представляет собой сложнейшую задачу, решение которой требует применения специальных методик и инструментов. Неудивительно, что в последнее время среди системных аналитиков и разработчиков значительно вырос

Из книги Моделирование бизнес-процессов с BPwin 4.0 автора Маклаков Сергей Владимирович

Предисловие В 1998 году вышла книга автора, посвященная инструментальным средствам системного анализа и проектирования информационных систем -BPwin и ERwin. (Маклаков С. BPwin и ERwin. CASE-средства разработки информационных систем. М: Диалог-МИФИ). Книга выдержала два издания и

Из книги Технология XSLT автора Валиков Алексей Николаевич

Предисловие О чем эта книга? Сложно переоценить влияние, которое за последнюю пару-тройку лет оказало на информационные технологии появление и распространение расширяемого языка разметки XML (от англ. extensible Markup Language). XML-технологии нашли применение во множестве областей и

Из книги Приемы создания интерьеров различных стилей автора Тимофеев С. М.

Предисловие 3ds Max - весьма популярная программа для создания проектов интерьеров. Программа предоставляет массу возможностей по созданию фотореалистичной картинки будущего интерьера, позволяет передать несколько концепций оформления одного и того же помещения,

Из книги 19 смертных грехов, угрожающих безопасности программ автора Ховард Майкл

Предисловие В основе теории компьютеров лежит предположение о детерминированном поведении машин. Обычно мы ожидаем, что компьютер будет вести себя так, как мы его запрограммировали. На самом деле это лишь приближенное допущение. Современные компьютеры общего

Из книги Как накормить слона, или первые шаги к самоорганизации с Evernote автора Султанов Гани

Предисловие Книга посвящена системе управления делами и сбора информации с помощью сервиса Evernote.Вот что написано о данной мини-книге в официальном блоге Evernote:«Книга будет особенно интересна тем, кто уже давно присматривается к методике повышения личной эффективности GTD

Из книги Введение в криптографию автора Циммерманн Филипп

Предисловие Криптография - частая тема детских комиксов и шпионских историй. Дети когда-то собирали этикетки Ovaltine®, чтобы получить Секретное кольцо-декодер капитана Миднайта. Едва ли не каждый смотрел телевизионный фильм о неприметном одетом в костюм джентльмене с

Из книги iOS. Приемы программирования автора Нахавандипур Вандад

Предисловие Это издание книги является не просто дополненной, а полностью переработанной версией предыдущего. В iOS 7 изменилось все: внешний вид и функциональная сторона операционной системы, способы использования наших устройств с iOS и, самое главное, принципы

Из книги Программист-фанатик автора Фаулер Чед

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


Во многих книгах описываются возможности STL, но только в этой рассказано о том, как работать с этой библиотекой. Каждый из 50 советов книги подкреплен анализом и убедительными примерами, поэтому читатель не только узнает, как решать ту или иную задачу, но и когда следует выбирать то или иное решение - и почему именно такое.

«...На нем не было ленточки! Не было ярлыка! Не было коробки и не было мешка!» Доктор Зюсс, «Как Гринч украл Рождество»

Предисловие

«...На нем не было ленточки! Не было ярлыка! Не было коробки и не было мешка!»

Доктор Зюсс, «Как Гринч украл Рождество»

Я впервые написал о STL (Standard Template Library) в 1995 году. Моя книга «More Effective C++» завершалась кратким обзором библиотеки. Но этого оказалось недостаточно, и вскоре я начал получать сообщения с вопросом, когда будет написана книга «Effective STL».

Несколько лет я сопротивлялся этой идее. Сначала я не обладал достаточным опытом программирования STL и не считал возможным давать советы. Но время шло, и на смену этой проблеме пришли другие. Бесспорно, появление библиотеки означало прорыв в области эффективной масштабируемой архитектуры, но в области использования STL возникали чисто практические проблемы, на которые было невозможно закрывать глаза. Адаптация любых программ STL, за исключением самых простейших, была сопряжена с множеством проблем, что объяснялось не только различиями в реализациях, но и разным уровнем поддержки шаблонов компиляторов. Учебники по STL были редкостью, поэтому постижение «дао программирования в STL» оказывалось задачей непростой. А как только программист справлялся с этой трудностью, возникала другая - поиск достаточно полной и точной справочной документации. Даже самая мелкая ошибка при использовании STL сопровождалась лавиной диагностических сообщений компилятора, длина которых достигала нескольких тысяч символов, причем в большинстве случаев речь шла о классах, функциях и шаблонах, не упоминавшихся в программе. При всем уважении к STL и разработчикам этой библиотеки я не решался рекомендовать ее программистам среднего звена. Я не был уверен в том, что STL можно использовать эффективно.

Затем я заметил нечто удивительное. Несмотря на все проблемы с переносом и скверное качество документации, несмотря на сообщения компилятора, напоминавшие бессмысленное нагромождение символов, многие из моих клиентов все равно работали с STL. Более того, они не просто экспериментировали с библиотекой, а использовали ее в коммерческих версиях своих программ! Для меня это было откровением. Я знал, что программы, использующие STL, отличались элегантной архитектурой, но любая библиотека, ради которой программист добровольно обрекал себя на трудности с переносом, на скверную документацию и невразумительные сообщения об ошибках, должна была обладать чем-то большим, чем хорошая архитектура. Все больше профессиональных программистов полагало, что даже плохая реализация STL лучше, чем ее полное отсутствие.

Более того, я знал, что ситуация с STL будет улучшаться. Библиотеки и компиляторы будут постепенно приближаться к требованиям Стандарта (так оно и было), появится качественная документация (см. список литературы на с. 203), а диагностика компилятора станет более вразумительной (в этой области ситуация оставляет желать лучшего, но рекомендации совета 49 помогут вам с расшифровкой сообщений). В общем, я решил внести свою лепту в движение STL. Так появилась эта книга - 50 практических советов по использованию STL в C++.

Сначала я намеревался написать книгу за вторую половину 1999 г. и даже набросал ее примерную структуру. Но потом планы изменились, я приостановил работу над книгой и разработал вводный курс по STL, который преподавался нескольким группам программистов. Примерно через год я вернулся к книге и значительно расширил материал на основании опыта, полученного за время преподавания. В книге я постарался осветить практические аспекты программирования в STL, особенно важные для профессиональных программистов.

Скотт Дуглас Мейерс Стаффорд, Орегон Апрель 2001 г.

Название : Эффективное использование STL.

Во многих книгах описываются возможности STL, но только в этой рассказано о том, как работать с этой библиотекой. Каждый из 50 советов книги подкреплен анализом и убедительными примерами, поэтому читатель не только узнает, как решать ту или иную задачу, но и когда следует выбирать то или иное решение - и почему именно такое.


Содержание
Предисловие.9
Благодарности.11
Введение.15
Определение, использование и расширение STL.16
Ссылки.16
STL и Стандарты.16
Подсчет ссылок.17
string и wstring.18
Терминология.18
Примеры.20
Вопросы эффективности.22
Рекомендации.22
Глава 1. Контейнеры. 23
Совет 1. Внимательно подходите к выбору контейнера.23
Совет 2. Остерегайтесь иллюзий контейнерно-независимого кода.27
Совет 3. Реализуйте быстрое и корректное копирование объектов в контейнерах. 31
Совет 4. Вызывайте empty вместо сравнения size() с нулем.33
Совет 5. Используйте интервальные функции вместо одноэлементных.35
Совет 6. Остерегайтесь странностей лексического разбора C++.42
Совет 7. При использовании контейнеров указателей, для которых вызывался оператор new, не забудьте вызвать delete для указателей перед уничтожением контейнера.44
Совет 8. Никогда не создавайте контейнеры, содержащие auto_ptr.48
Совет 9. Тщательно выбирайте операцию удаления.50
Совет 10. Помните о правилах и ограничениях распределителей памяти.54
Совет 11. Учитывайте область применения пользовательских
распределителей памяти.60
Совет 12. Разумно оценивайте потоковую безопасность контейнеров STL.62
Глава 2. Контейнеры vector и string. 66
Совет 13. Используйте vector и string вместо динамических массивов.66
Совет 14. Используйте reserve для предотвращения лишних операций перераспределения памяти.68
Совет 15. Помните о различиях в реализации string.71
Совет 16. Научитесь передавать данные vector и string функциям унаследованного интерфейса.75
Совет 17. Используйте «фокус с перестановкой» для уменьшения емкости.78
Совет 18. Избегайте vector .80
Глава 3. Ассоциативные контейнеры. 83
Совет 19. Помните о различиях между равенством и эквивалентностью.83
Совет 20. Определите тип сравнения для ассоциативного контейнера, содержащего указатели.87
Совет 21. Следите за тем, чтобы функции сравнения возвращали false в случае равенства.91
Совет 22. Избегайте изменения ключа «на месте» в контейнерах set и multiset.93
Совет 23. Рассмотрите возможность замены ассоциативных контейнеров
сортированными векторами.98
Совет 24. Тщательно выбирайте между map::operator и map::insert.103
Совет 25. Изучите нестандартные хэшированные контейнеры.107
Глава 4. Итераторы. 111
Совет 26. Старайтесь использовать iterator вместо const_iterator, reverse_iterator и const_reverse_iterator.111
Совет 27. Используйте distance и advance для преобразования const_iterator в iterator.114
Совет 28. Научитесь использовать функцию base.117
Совет 29. Рассмотрите возможность использования istreambufjterator при посимвольном вводе.119
Глава 5. Алгоритмы. 122
Совет 30. Следите за тем, чтобы приемный интервал имел достаточный размер.123
Совет 31. Помните о существовании разных средств сортировки.127
Совет 32. Сопровождайте вызовы remove-подобных алгоритмов вызовом erase.131
Совет 33. Будьте внимательны при использовании remove-подобных алгоритмов с контейнерами указателей.135
Совет 34. Помните о том, какие алгоритмы получают сортированные интервалы. 138
Совет 35. Реализуйте простые сравнения строк без учета регистра символов с использованием mismatch или lexicographical_compare.141
Совет 36. Правильно реализуйте copy_if.144
Совет 37. Используйте accumulate или for_each для обобщения интервальных данных.146
Глава 6. Функции, функторы и классы функций. 151
Совет 38. Проектируйте классы функторов для передачи по значению.151
Совет 39. Реализуйте предикаты в виде «чистых» функций.154
Совет 40. Классы функторов должны быть адаптируемыми.157
Совет 41. Разберитесь, для чего нужны ptr_fun, mem_fun и mem_fun_ref.161
Совет 42. Следите за тем, чтобы конструкция less означала operator<.164
Глава 7. Программирование в STL. 167
Совет 43. Используйте алгоритмы вместо циклов.167
Совет 44. Используйте функции контейнеров вместо одноименных алгоритмов.174
Совет 45. Различайте алгоритмы count, find, binary_search, lower_bound, upper_bound и equal_range.177
Совет 46. Передавайте алгоритмам объекты функций вместо функций.184
Совет 47. Избегайте «нечитаемого» кода.187
Совет 48. Всегда включайте нужные заголовки.190
Совет 49. Научитесь читать сообщения компилятора.191
Совет 50. Помните о web-сайтах, посвященных STL.198
Сайт SGI STL.198
СайтБПрог!.200
Сайт Boost.201
Литература.203
Книги, написанные мной.203
Книги, написанные другими авторами.204
Ошибки и опечатки.206
Приложение А Локальные контексты.207
Сравнение строк без учета регистра символов.207
Первая попытка.208
Локальный контекст.210
Локальные контексты в C++.211
Фасет collate.212
Сравнение строк без учета регистра.212
Приложение Б Замечания по поводу платформ STL от Microsoft . 216
Шаблоны функций классов в STL.216
MSVC версий 4-6.217
Обходное решение для MSVC4-5.218
Обходное решение для MSVC6.219
Алфавитный указатель.

Помните о правилах и ограничениях распределителей памяти .
Распределители памяти первоначально разрабатывались как абстракция для моделей памяти, позволяющих разработчикам библиотек игнорировать различия между near- и far-указателями в некоторых 16-разрядных операционных системах (например, DOS и ее зловредных потомках), однако эта попытка провалилась. Распределители также должны были упростить разработку объектных диспетчеров памяти, но вскоре выяснилось, что такой подход снижает эффективность работы некоторых компонентов STL.

Чтобы избежать снижения быстродействия, Комитет по стандартизации C++ включил в Стандарт положение, которое практически выхолостило объектные распределители памяти, но одновременно выражало надежду, что от этой операции их потенциальные возможности не пострадают.
Но это еще не все. Распределители памяти STL, как и operator new с operator new, отвечают за выделение (и освобождение) физической памяти, однако их клиентский интерфейс имеет мало общего с клиентским интерфейсом operator new, operator new и даже mall ос. Наконец, большинство стандартных контейнеров никогда не запрашивает память у своих распределителей. Еще раз подчеркиваю - никогда. В результате распределители производят довольно странное впечатление.

Эффективное использование STL

Предисловие

«...На нем не было ленточки! Не было ярлыка! Не было коробки и не было мешка!»

Доктор Зюсс, «Как Гринч украл Рождество»

Я впервые написал о STL (Standard Template Library) в 1995 году. Моя книга «More Effective C++» завершалась кратким обзором библиотеки. Но этого оказалось недостаточно, и вскоре я начал получать сообщения с вопросом, когда будет написана книга «Effective STL».

Несколько лет я сопротивлялся этой идее. Сначала я не обладал достаточным опытом программирования STL и не считал возможным давать советы. Но время шло, и на смену этой проблеме пришли другие. Бесспорно, появление библиотеки означало прорыв в области эффективной масштабируемой архитектуры, но в области использования STL возникали чисто практические проблемы, на которые было невозможно закрывать глаза. Адаптация любых программ STL, за исключением самых простейших, была сопряжена с множеством проблем, что объяснялось не только различиями в реализациях, но и разным уровнем поддержки шаблонов компиляторов. Учебники по STL были редкостью, поэтому постижение «дао программирования в STL» оказывалось задачей непростой. А как только программист справлялся с этой трудностью, возникала другая - поиск достаточно полной и точной справочной документации. Даже самая мелкая ошибка при использовании STL сопровождалась лавиной диагностических сообщений компилятора, длина которых достигала нескольких тысяч символов, причем в большинстве случаев речь шла о классах, функциях и шаблонах, не упоминавшихся в программе. При всем уважении к STL и разработчикам этой библиотеки я не решался рекомендовать ее программистам среднего звена. Я не был уверен в том, что STL можно использовать эффективно.

Затем я заметил нечто удивительное. Несмотря на все проблемы с переносом и скверное качество документации, несмотря на сообщения компилятора, напоминавшие бессмысленное нагромождение символов, многие из моих клиентов все равно работали с STL. Более того, они не просто экспериментировали с библиотекой, а использовали ее в коммерческих версиях своих программ! Для меня это было откровением. Я знал, что программы, использующие STL, отличались элегантной архитектурой, но любая библиотека, ради которой программист добровольно обрекал себя на трудности с переносом, на скверную документацию и невразумительные сообщения об ошибках, должна была обладать чем-то большим, чем хорошая архитектура. Все больше профессиональных программистов полагало, что даже плохая реализация STL лучше, чем ее полное отсутствие.

Более того, я знал, что ситуация с STL будет улучшаться. Библиотеки и компиляторы будут постепенно приближаться к требованиям Стандарта (так оно и было), появится качественная документация (см. список литературы на с. 203), а диагностика компилятора станет более вразумительной (в этой области ситуация оставляет желать лучшего, но рекомендации совета 49 помогут вам с расшифровкой сообщений). В общем, я решил внести свою лепту в движение STL. Так появилась эта книга - 50 практических советов по использованию STL в C++.

Сначала я намеревался написать книгу за вторую половину 1999 г. и даже набросал ее примерную структуру. Но потом планы изменились, я приостановил работу над книгой и разработал вводный курс по STL, который преподавался нескольким группам программистов. Примерно через год я вернулся к книге и значительно расширил материал на основании опыта, полученного за время преподавания. В книге я постарался осветить практические аспекты программирования в STL, особенно важные для профессиональных программистов.

Скотт Дуглас Мейерс Стаффорд, Орегон Апрель 2001 г.

Благодарности

За годы, которые потребовались на то, чтобы разобраться в STL, разработать учебный курс и написать эту книгу, я получил неоценимую помощь и поддержку от множества людей. Хочу особо отметить Марка Роджерса (Mark Rodgers), великодушно предложившего просматривать материалы учебного курса по мере их написания. От него я узнал об STL больше, чем от кого-либо другого. Марк также выполнял функции технического редактора этой книги, а его замечания и дополнения помогли улучшить практически весь материал.

Другим выдающимся источником информации были конференции Usenet; посвященные языку C++, особенно comp.lang.c++.moderated («clcm»), comp.std.c++ и microsoft.public.vc.stl. Свыше десяти лет участники этих и других конференций отвечали на мои вопросы и ставили задачи, над которыми мне приходилось думать. Я глубоко благодарен сообществу Usenet за помощь в работе над этой книгой и моими предыдущими публикациями по C++.

Мое понимание STL формировалось под влиянием ряда публикаций, самые важные из которых перечислены в конце книги. Особенно много полезного я почерпнул из труда Джосаттиса «The C++ Standard Library» .

Идеи и наблюдения, из которых состоит эта книга, в основном принадлежат другим авторам, хотя в ней есть и ряд моих собственных открытий. Я постарался по возможности отследить источники, из которых был почерпнут материал, но эта задача обречена на провал, поскольку информация собиралась из множества источников в течение долгого периода времени. Приведенный ниже список далеко не полон, но ничего лучше предложить не могу. Учтите, что в этом списке перечислены источники, из которых я узнавал о тех или иных идеях и приемах, а не их первооткрыватели.

В совете 1 замечание о том, что узловые контейнеры обеспечивают лучшую поддержку транзакционной семантики, позаимствовано из раздела 5.11.2 «The C++ Standard Library» . Пример использования typedef при изменении типа распределителя памяти из совета 2 был предложен Марком Роджерсом. Совет 5 вдохновлен статьeй Ривса (Reeves) «STL Gotchas» . В основу совета 8 заложен совет 37 книги Саттера «Exceptional C++» , а Кевлин Хенни (Kevlin Henney) предоставил важную информацию о проблемах, возникающих при использовании контейнеров auto_ptr. В конференциях Usenet Мэтт Остерн (Matt Austem) предоставил примеры использования распределителей памяти, включенные мной в совет 11. Совет 12 основан на материалах сайта SGI STL , посвященных потоковой безопасности. Информация о подсчете ссылок в многопоточной среде из совета 13 почерпнута из статьи Саттера . Идея совета 15 была подсказана статьей Ривса «Using Standard string in the Real World, Part 2» . Методика непосредственной записи данных в vector , продемонстрированная в совете 16, была предложена Марком Роджерсом. В совет 17 была включена информация из Usenet, авторы - Симел Наран (Siemel Naran) и Карл Баррон (Carl Barron). Совет 18 был позаимствован из статьи Саттера «When Is a Container Not a Container?» . Для совета 20 Марк Роджерс предложил идею преобразования указателя в объект посредством разыменования, а Скотт Левандовски (Scott Lewandowski) разработал представленную версию DereferenceLess. Совет 21 основан на сообщении Дуга Харрисона (Doug Harrison) в конференцию microsoft.public.vc.stl, но решение о том, чтобы ограничить рамки этого совета проблемой равенства, принял я сам. Совет 22 основан на статье Саттера «Standard Library News: sets and maps» . Совет 23 был подсказан статьей Остерна «Why You Shouldn"t Use set - and What to Use Instead» ; Дэвид Смоллберг (David Smallberg) усовершенствовал мою реализацию DataCompare. Описание хэшированных контейнеров Dinkumware основано на статье Плаугера (Plauger) «Hash Tables» . Марк Роджерс не согласен с выводами совета 26, но первоначально этот совет был подсказан его замечанием относительно того, что некоторые функции контейнеров принимают только аргументы типа iterator. Работа над советом 29 вдохновлялась дискуссиями в Usenet с участием Мэтта Остерна и Джеймса Канце (James Kanze); на меня также повлияла статья Клауса Крефта (Klaus Kreft) и Анжелики Лангер (Angelika Langer) «А Sophisticated Implementation of User-Defined Inserters and Extractors» . Совет 30 основан на материалак раздела 5.4.2 книги Джосаттиса «The C++ Standard Library» . В совете 31 Марко Далла Гасперина (Marco Dalla Gasperina) предложил пример использования nth_element для вычисления медианы, а использование этого алгоритма для поиска процентилей взято прямо из раздела 18.7.1 книги Страуструпа (Stroustrup) «The C++ Programming Language». Совет 32 был вдохновлен материалами раздела 5.6.1 книги Джосаттиса «The C++ Standard Library». Совет 35 появился под влиянием статьи Остерна «How to Do Case-Insensitive String Comparison» , а сообщения Джеймса Канце и Джона Поттера (John Potter) помогли мне лучше разобраться в сути происходящего. Реализация copy_if, приведенная в совете 36, позаимствована из раздела 18.6.1 книги Страуструпа «The C++ Programming Language» . В основу совета 39 заложены публикации Джосаттиса, который впервые упомянул о «предикатах с состоянием» в своей книге «The C++ Standard Library» и в статье «Predicates vs. Function Objects» . В своей книге я использую его пример и рекомевдую предложенное им решение, хотя термин «чистая функция» принадлежит мне. В совете 41 Мeтт Остерн подтвердил мои подозрения относительно происхождения имен mem_fun и mem_fun_ref. Совет 42 берет свое начало из лекции, прочитанной мне Марком Роджерсом, когда я нарушил рекомендацию этого совета. Марку Роджерсу также принадлежит приведенное в совете 44 замечание о том, что при внешнем поиске в контейнерах map и multimap анализируются оба компонента пары, тогда как при поиске функциями контейнера учитывается только первый компонент (ключ). В совете 45 использована информация от разных участников clem, среди которых Джон Поттер, Марсин Касперски (Marcin Kasperski), Pete Becker (Пит Бекер), Деннис Йель (Dennis Yelle) и Дэвид Абрахаме (David Abrahams). Дэвид Смоллберг подсказал мне идею применения equal_range для поиска на базе эквивалентности и подсчета результатов в сортированных последовательных контейнерах. Андрей Александреску (Andrei Alexandrescu) помог разобраться в условиях возникновения проблемы «ссылки на ссылку», упоминаемой в совете 50; приведенный в книге пример основан на аналогичном примере Марка Роджерса, взятом с сайта Boost .

Издательство: АСТ

Год: 2014

Страниц: 352

Формат: rtf, fb2

Пособие по обществознанию для подготовки к итоговому экзамену « . Полный курс подготовки к ЕГЭ » состоит из 5 разделов, которые традиционно изучаются в школьной программе за курс средней школы.

Все изложенные в пособии материалы и факты являются общепринятыми. Но здесь все материалы и концепции четко систематизированы, для облегчения предэкзаменационной подготовки.

Издательство: Экзамен

Год выпуска: 2015

Формат: PDF

Пособие по обществознанию для учащихся 11 класса «ЕГЭ 2015. . Практикум: , социология » включает в себя теоретические положения и практические задания по этим двум разделам, так как они входят в обязательный курс обществоведческой подготовки школьника.

К основным вопросам по разделу , изучаемым в курсе и выносимым на экзамен вопросам макроэкономики относятся вопросы о таких общих экономических процессах и явлениях, как инфляция, безработица, экономический рост, государственное регулирование экономики, бюджетная и налоговая политика, банковская система, рынки товаров, труда, ценных бумаг и др.

В разделе социология проверяются знания, многие из которых начали формироваться у учащихся еще в 6 классе. Это относится к таким понятиям, как социальная группа, семья.

Издательство: Экзамен

Год выпуска: 2015

Формат: PDF

Пособие по обществознанию для подготовки к «ЕГЭ 2015. . Практикум: политика, право » знакомит выпускников с 2 разделами обществознания из пяти.

По каждому из разделов здесь имеются задания для учащихся по различным аспектам содержания раздела, которые аналогичны экзаменационным заданиям, содержащимся в КИМах по обществознанию в 2015 году. Все задания комментируются, указывая на ошибки которые могут иметь место при выполнении. К заданиям части 1 даны ответы, а части 2 - критерии верных ответов.

Издательство: Экзамен

Год выпуска: 2015

Формат: PDF

Пособие по обществознанию для девятиклассников «ОГЭ (ГИА-9) 2015. . 9 класс. Практикум. Реальные тесты » позволит учащимся отработать практические навыки выполнения всех типов заданий экзамена по обществознанию.

Структура экзаменационной работы

Состоит из З частей: 1 содержит задания с выбором ответа; 2 - задания с кратким ответом; З - задания с развернутым ответом.

В 1 части рассматриваются 7 тем курса: общество, человек, культура, социальные отношения, политика, право. Задания, сгруппированы в шесть блоков-модулей.

Задания 2 и З частей ориентированы на выявление уровня овладения определенной группой умений.

Книга ориентирована на все категории учащихся, выбравших экзамен по обществознанию для сдачи в формате ОГЭ.