Обсуждение:Стандартная библиотека шаблонов

message: Добрый день, всем
К сожалению моя правка по поводу классификации контейнеров была отменена Gribozavr.
Хотелось бы узнать, почему так произошло :)
Пока этого нет выскажу свои аргументы "за"
Хотя Б. Страуструп и является создателем C++, но нельзя ссылаться на его книжку как на первоисточник.
Для этого есть специальный стандарт ISO/IEC 14882.
- Согласно стандарту хеш-таблицы не входят в STL (хотя они есть STLport)
По поводу priority_queue, queue и stack в Стандарте они определены как контейнеры-адаптеры.
Сейчас в статье они вообще не упоминаются.
По поводу псевдоконтейнеров. Под ними понимаются шаблоны классов, похожие на стандартные контейнеры,
но не удовлетворяющим каким-либо требованиям, предъявляемым к стандартным контейнерам.
С уважением,
Войтеховский Алексей
replies: text: Вынужден извиниться перед вами!  Я отменил правку не подумав.  Да, ваша классификация намного лучше.

text: PS. Подписывайтесь на страницах обсуждения, пожалуйста. (Для этого достаточно написать ~~~~) --gribozavr 16:12, 10 июля 2008 (UTC)
thread_title: Untitled

message: Добрый день, всем
В настоящий момент статья про STL содержит не так много информации.
Предлагаю дополнить ее следующими разделами:
* 1. Общая информация (уже есть)
* 2. История развития (уже есть)
* 3. Основные составляющие
* 3. Классификация контейнеров (уже есть)
* 4. Типы итераторов
* 5. Виды алгоритмов и функциональных объектов.
* 6. Потоки ввода/вывода
 Voitalex 12:15, 11 июля 2008 (UTC)
replies: text: Я тут позволил себе наглость слегка отформатировать Ваш комментарий для улучшения читаемости...

text: По поводу дополнения. Разумеется, эта статья явно недостаточно описывает предмет... Я бы даже сказал, страдает вопиющей незавершенностью, описав контейнеры и умолчав про алгоритмы.

text: К Вашему списку я бы еще добавил строки и потоки ввода-вывода. Ну и те же контейнеры неплохо бы дополнить примерами, когда применение каждого из них наиболее целесообразно... если удастся найти источники — стандарт со Страуструпом тут не помощники...

text: Удачи! Centurn l 20:55, 11 июля 2008 (UTC)
Добрый день, всем
Спасибо Centurn за форматирование текста. Так выглядит гораздо лучше.
По поводу потоков ввода/вывода. Я могу ошибаться но, реализация потоков ввода/вывода не входит в STL.
Предлагаю обсудить следующее:
"Стандартная библиотека шаблонов STL (англ. standard template library) — набор шаблонов функций и классов в языке C++, включающий в себя различные контейнеры данных (список, очередь, множество, отображение, хэштаблица, очередь с приоритетами) и базовые алгоритмы (сортировка, поиск)."
На мой взгляд определение слишком детализировано. Чтобы не быть голословным предложу свой вариант:
"Стандартная библиотека шаблонов STL (англ. Standard Template Library) - набор согласованных обобщенных алгоритмов, контейнеров и средств доступа к их содержимому.

text: Ну, стандарта у меня под рукой нет, но вот у дядюшки Страуструпа глава 21 «Потоки» относится к главе III «Стандартная библиотека», да и расположены они в пространстве std::, да и ести они везде, включая довольно древние компиляторы, да и «hello, world!» на C++ выводят в cout... Так что я б сказал, что потоки ввода-вывода в STL. Вот локализация там всякая может и нет... Впрочем, стандартной локализацией никто и не пользуется...

text: По поводу определения — да, мне кажется, Ваш вариант звучит лучше. Я только не очень сообразил, что такое "и средств доступа к их содержимому". Я бы сказал "и различных вспомогательных классов". А то std::max или auto_ptr — это не средство доступа, да и mem_fun/bind2nd тоже не особо.  Centurn l 20:04, 14 июля 2008 (UTC)
Добрый день, всем
Посмотрев на то, что я написал ранее, со свежей головой, понял, что написал непонятно что :)
Спасибо Centurn за поправку. Потоки ввода/вывода входят в STL.
По поводу определения. Под фразой "и средств доступа к их содержимому" я имел в виду итераторы. Но как правильно заметил Centurn
нигде в не освещены вспомогательные функции. Предлагаю "склеенный" вариант:
"Стандартная библиотека шаблонов STL (англ. Standard Template Library) - набор согласованных обобщенных алгоритмов, контейнеров, средств доступа к их содержимому и различных вспомогательных функций.
Voitalex 10:07, 15 июля 2008 (UTC)

text: Ну, такая формалировка мне нравится.

text: Эх, что-то страница обсуждения становится больше самой статьи... :) Centurn l 19:11, 15 июля 2008 (UTC)
На мой взгляд, это правильно, что страница "Обсуждение" становится все больше и больше. Лучше "отфильтровать" материал здесь, чем плодить ненужные версии статьи.
Предлагаю следующий раздел под названием "Структура библиотеки"
"Структура библиотеки"
В библиотеке выделяют пять основных компонентов:
* 1. Адаптер (adaptor) - адаптация компонентов для обеспечения различного интерфейса.
* 2. Алгоритм (algorithm) - определение вычислительной процедуры.
* 3. Итератор (iterator) - обеспечение средств доступа к содержимому контейнера.
* 4. Контейнер (container) - хранение набора объектов в памяти.
* 5. Функциональный объект (functor) - сокрытие функции в объекте для использования другими компонентами.
Разделение позволяет уменьшить количество компонентов. Например, вместо написания отдельной функции поиска элемента для каждого типа контейнера обеспечивается единственная версия, которая работает с каждым из них, пока соблюдаются основные требования.

text: Ну, если бы тут все обсуждали перед исправлением, сейчас было бы не 300 тысяч статей, а эдак 15 тысяч. Здесь хорошая система контроля версий, и всегда могут поправить. Так что спрашивать действительно необходимо только, когда есть какие-то сомнения, особенно когда чужое что-то изменяется... А тут явно дополнять статью надо. В таких случаях просто вписывается по своему разумению, а если кому-то не нравится, вот тогда можно и обсудить...  Centurn l 20:33, 17 июля 2008 (UTC)
thread_title:  Дополнение статьи