Что такое "STL контейнеры"? И чем они полезны?
От: Багер  
Дата: 05.12.02 11:14
Оценка:
Что такое "STL контейнеры"? И чем они полезны?
Что там есть такого, что нельзя достаточно быстро и более оптимизированно написать самому?
Ваша программа работает корректно? Один звонок и я всё исправлю!

Делаю потенциальные фичи :))
Re: Что такое "STL контейнеры"? И чем они полезны?
От: UgN  
Дата: 05.12.02 11:19
Оценка:
Здравствуйте, Багер, Вы писали:

Б>Что такое "STL контейнеры"? И чем они полезны?

RTFM. list, set, map, etc (etc — это не контейнер )

Б>Что там есть такого, что нельзя достаточно быстро и более оптимизированно написать самому?

Стандарт
Re: Что такое "STL контейнеры"? И чем они полезны?
От: ziserg Украина  
Дата: 05.12.02 11:22
Оценка:
Здравствуйте, Багер, Вы писали:

Б>Что такое "STL контейнеры"? И чем они полезны?

Б>Что там есть такого, что нельзя достаточно быстро и более оптимизированно написать самому?
Почему бы Вам не почитать статью на этом сайте http://www.rsdn.ru/article/?cpp/stl.xml
Автор(ы): Александр Степанов, Менг Ли
Re: Что такое "STL контейнеры"? И чем они полезны?
От: vav Россия  
Дата: 05.12.02 11:26
Оценка:
Б>Что такое "STL контейнеры"? И чем они полезны?
Б>Что там есть такого, что нельзя достаточно быстро и более оптимизированно написать самому?

Зачем нужно колесо? Чем оно полезно?
Может можно достаточно быстро изобрести свое?
Re[2]: Что такое "STL контейнеры"? И чем они полезны?
От: SchweinDeBurg Россия https://zarezky.spb.ru/
Дата: 05.12.02 11:34
Оценка:
Здравствуйте, vav, Вы писали:

Неприятной (для меня) стороной STL является вываливаемая компайлером куча варнингов. Я понимаю, что их можно запретить, но "закрывание глаз" не есть удачное решение, ИМХО.
- Искренне ваш, Поросенок Пафнутий
Re[3]: Что такое "STL контейнеры"? И чем они полезны?
От: Anton V. Kolotaev  
Дата: 05.12.02 12:09
Оценка:
Здравствуйте, SchweinDeBurg, Вы писали:

SDB>Неприятной (для меня) стороной STL является вываливаемая компайлером куча варнингов. Я понимаю, что их можно запретить, но "закрывание глаз" не есть удачное решение, ИМХО.


Это беда компилятора. Для обощенного, а тем более производящего программирования характерны идентификаторы длиной в тысячи символов.
Re[4]: Что такое "STL контейнеры"? И чем они полезны?
От: SchweinDeBurg Россия https://zarezky.spb.ru/
Дата: 05.12.02 12:15
Оценка:
Здравствуйте, Anton V. Kolotaev, Вы писали:

AVK>Это беда компилятора. Для обощенного, а тем более производящего программирования характерны идентификаторы длиной в тысячи символов.


Да там в методах полно, например, неиспользуемых параметров. Как будто трудно было их имена закомментить! Кроме того, у компилятора там законные, имхо, претензии к тексту (сейчас точно не помню какие, но когда я их увидел и потом посмотрел исходники, был весьма удивлен). А на длинные имена я не очень много ругами видел и запретить ее у меня бы рука поднялась легко.
- Искренне ваш, Поросенок Пафнутий
Re[5]: Что такое "STL контейнеры"? И чем они полезны?
От: Багер  
Дата: 05.12.02 12:22
Оценка:
Здравствуйте.

vav, колёса для лунохода до сих пор изобретают, почему бы не взять автомобильные? Подумайте над этим.

За ссылку спасибо. Изучу — вопросы сюда же вставлю.
Ваши отзывы с удовольствием почитаю!
Ваша программа работает корректно? Один звонок и я всё исправлю!

Делаю потенциальные фичи :))
Re: Что такое "STL контейнеры"? И чем они полезны?
От: Bell Россия  
Дата: 05.12.02 12:52
Оценка:
Здравствуйте, Багер, Вы писали:

Б>Что такое "STL контейнеры"?

STL контейнеры — это контейнеры, входящие в состав STL, т.е. в состав стандартной библиотеки шаблонов. Конекретнее —
std::vector
std::queue
std::deque
std::priority_queue
std::stack
std::list
std::set
std::multiset
std::map
std::multimap
std::valarray

Некоторые реализации также включают
std::hash_set
std::hash_multiset
std::hash_map
std::hash_multimap

Вроде ничего не забыл
Каждый из приведенных контейнеров имеет свои свойства и область применения. Подробнее можно почитать в литературе (например можно посмотреть раздел "Ресурсы->Книги" на этом сайте).

Б>И чем они полезны?

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

Б>Что там есть такого, что нельзя достаточно быстро и более оптимизированно написать самому?


Поскольку эти контейнеры уже кем-то созданы, то можно что-то подобное написать и самому. Насколько быстро и эффективно — зависит от многих факторов.

ЗЫ
Несколько месяцев назад здесь (увы не помню точно в каком форуме) был топик "За что я не люблю STL". Можно почитать высказанные там аргументы.
Любите книгу — источник знаний (с) М.Горький
Re[5]: Что такое "STL контейнеры"? И чем они полезны?
От: jazzer Россия Skype: enerjazzer
Дата: 05.12.02 16:10
Оценка:
Здравствуйте, SchweinDeBurg, Вы писали:

SDB>Да там в методах полно, например, неиспользуемых параметров. Как будто трудно было их имена закомментить! Кроме того, у компилятора там законные, имхо, претензии к тексту (сейчас точно не помню какие, но когда я их увидел и потом посмотрел исходники, был весьма удивлен). А на длинные имена я не очень много ругами видел и запретить ее у меня бы рука поднялась легко.


Эти претензии можно направить только к разработчику конкретной реализации STL, но не к STL в целом как к стандартной библиотеке шаблонов.
jazzer (Skype: enerjazzer) Ночная тема для RSDN
Автор: jazzer
Дата: 26.11.09

You will always get what you always got
  If you always do  what you always did
Re[2]: Что такое "STL контейнеры"? И чем они полезны?
От: ssi Россия  
Дата: 05.12.02 18:27
Оценка: 1 (1)
Здравствуйте, Bell, Вы писали:

B>Конекретнее —

B>std::vector
B>std::queue
B>std::deque
B>std::priority_queue
B>std::stack
B>std::list
B>std::set
B>std::multiset
B>std::map
B>std::multimap
B>std::valarray
std::string

B>Некоторые реализации также включают

B>std::hash_set
B>std::hash_multiset
B>std::hash_map
B>std::hash_multimap
std::rope
Знающие не говорят, говорящие не знают. Лао Цзы
Re[6]: Что такое "STL контейнеры"? И чем они полезны?
От: SchweinDeBurg Россия https://zarezky.spb.ru/
Дата: 06.12.02 06:15
Оценка:
Здравствуйте, jazzer, Вы писали:

J>Эти претензии можно направить только к разработчику конкретной реализации STL, но не к STL в целом как к стандартной библиотеке шаблонов.


Безусловно!
- Искренне ваш, Поросенок Пафнутий
Re[7]: Что такое "STL контейнеры"? И чем они полезны?
От: Багер  
Дата: 06.12.02 15:27
Оценка:
Здравствуйте, SchweinDeBurg, Вы писали:

Мудро и толкого написано, конечно, но суть то в чём?
К примеру:
std::string
и
AnsiString

std::queue, std::stack
и реализация его в несколько строчек самому, дабы не разбираться с премудростями контейнеров. Зачастую требуется лишь монотипные стеки и очереди, но шаблонные.

std::set
и операция | , соединяющия enum данные, с чётко заданными значениями 1, 2, 4, 8, 16...
Помоему проще намного.

Хеш? Однако тоже не так сложно.

И главное: оптимизировано под конкретную задачу, не надо разбираться в дополнительном коде и возникших, из-за его неправильного использования, ошибках.

Пример задачи приведите пожалуйста, с учётом того, что cout мне ни разу не понадобился, а с файлами я работаю через обыкновенные OpenFile, ReadFile, или наоборот FileRead, FileOpen. Уже и не помню ))

Спасибо.
Ваша программа работает корректно? Один звонок и я всё исправлю!

Делаю потенциальные фичи :))
Re[8]: Польза стандартизации
От: ingie Россия  
Дата: 06.12.02 20:26
Оценка:
Здравствуйте, Багер, Вы писали:

Б>Мудро и толкого написано, конечно, но суть то в чём?

Суть в стандартизации.

Б>К примеру: std::string и AnsiString

[]

Контрпример такой:
open-source приложение в разработке которого участвуют >10 человек.
И что интересно будет, когда они все понапишут своих контейнеров, а потом 80% разработчиков сменится. Легко им будет понять, что делает код? Иногда очень сложно. Разные стили, приоритеты и в довершение знание английского тоже у всех разное...

Б>И главное: оптимизировано под конкретную задачу, не надо разбираться в дополнительном коде и возникших, из-за его неправильного использования, ошибках.

Изучить STL и не делать глупых ошибок это месяц или два. Читать чужой код — всю жизнь.
Кто то верно заметил, код пишется один раз а читается много раз. Стандартизация призвана облегчить чтение. В конечном счете ведь читать придется самому...
С другой стороны, если все время пишешь такие классы, о которых ты говоришь, значит уже имеешь и используешь собственную библиотеку, иначе это просто мартышкин труд какой-то! Не думаю, что твоя личная библиотека лучше STL. Хотя кто знает.

Ну и к прочим достоинствам можно отнести хорошую портабельность и гарантии сложности вычислений.

Б>Пример задачи приведите пожалуйста, с учётом того, что cout мне ни разу не понадобился, а с файлами я работаю через обыкновенные OpenFile, ReadFile, или наоборот FileRead, FileOpen. Уже и не помню ))

Хорош мой пример?
Best Regards. Ingie.
Re[9]: Польза стандартизации
От: Багер  
Дата: 07.12.02 10:21
Оценка:
Здравствуйте, ingie, Вы писали:

Опять же, АнсиСтринг столь же стандартен.
Оператор | — столь же часто используется для виндовс-команд, что о стандартности такого подхода спорить не приходится.
А стек и очередь занимают несколько строчек кода, что и разбираться в них сложности нет.
Вот бинарное дерево, автобалансируемое — это да, но вот есть ли реализация его в STL?
Ваша программа работает корректно? Один звонок и я всё исправлю!

Делаю потенциальные фичи :))
Re[10]: Польза стандартизации
От: ingie Россия  
Дата: 07.12.02 10:38
Оценка:
Здравствуйте, Багер, Вы писали:

Начнем с того, что Вы, уважаемый Багер, сейчас спорите не со мной, а с мировым опытом программирования на C++. Мне кажется в моем предыдущем посте я указал конкретный пример, чем он не доходчив???

Б>Опять же, АнсиСтринг столь же стандартен.

STL входит в ISO/IEC 14882 (знакомое название?) а куда входит AnsiString?

Б>Оператор | — столь же часто используется для виндовс-команд, что о стандартности такого подхода спорить не приходится.

Согласен. Но это не пересекается с STL по функциональности. Используй на здоровье, и все поймут.

Б>А стек и очередь занимают несколько строчек кода, что и разбираться в них сложности нет.

Ты в соседнем треде уже несколько дней разбираешься в этих нескольких строках. Я не прав? Между тем STL и boost позволяют легко реализовать то что ты хочешь. С гарантиями сложности вычислений и переносимо, заметь!

Б>Вот бинарное дерево, автобалансируемое — это да, но вот есть ли реализация его в STL?

Нет. Для этого есть boost, и со временем оно там скорее всего появится.
<<RSDN@Home 1.0 (1.0.1070.26092) beta 2 >>
Re[10]: Польза стандартизации
От: Odi$$ey Россия http://malgarr.blogspot.com/
Дата: 07.12.02 10:44
Оценка:
Здравствуйте, Багер, Вы писали:

Б>Опять же, АнсиСтринг столь же стандартен.


какой такой Анси Стриннг? у меня в VC никакого такого анси стринга нету std::string однако есть
Re[8]: Что такое "STL контейнеры"? И чем они полезны?
От: Odi$$ey Россия http://malgarr.blogspot.com/
Дата: 07.12.02 10:51
Оценка:
Здравствуйте, Багер, Вы писали:

Б>std::queue, std::stack

Б>и реализация его в несколько строчек самому, дабы не разбираться с премудростями контейнеров. Зачастую требуется лишь монотипные стеки и очереди, но шаблонные.

Б>std::set

Б>и операция | , соединяющия enum данные, с чётко заданными значениями 1, 2, 4, 8, 16...
Б>Помоему проще намного.

Б>Хеш? Однако тоже не так сложно.


можно, можно реализовывать стеки, вектора, хеши, очереди, связные списки, но покуда есть STL мне, да думаю и тебе за это никто не заплатит, есть свободное время и источник денег — вперед и с песней, занятие очень даже ничего, интересное наверно, а мне надо писать продукт, который у меня купят и STL тут очень кстати
Re[11]: Польза стандартизации
От: Багер  
Дата: 07.12.02 10:52
Оценка:
Здравствуйте, ingie, Вы писали:

I>Начнем с того, что Вы, уважаемый Багер, сейчас спорите не со мной, а с мировым опытом программирования на C++. Мне кажется в моем предыдущем посте я указал конкретный пример, чем он не доходчив???


Б>>Опять же, АнсиСтринг столь же стандартен.

I>STL входит в ISO/IEC 14882 (знакомое название?) а куда входит AnsiString?
До меня то доходит! Правда Багер->лень= true до сих пор на эту тему.

Б>>А стек и очередь занимают несколько строчек кода, что и разбираться в них сложности нет.

I>Ты в соседнем треде уже несколько дней разбираешься в этих нескольких строках. Я не прав? Между тем STL и boost позволяют легко реализовать то что ты хочешь. С гарантиями сложности вычислений и переносимо, заметь!
Здесь я говорит о монотипных стеках и очередях. Не стоит путать топики. Не были бы разными — обсуждали бы в одном. В том же топике объясняется и чем не подходит STL, в предложенном использовании, а боост я ещё не изучил.

Б>>Вот бинарное дерево, автобалансируемое — это да, но вот есть ли реализация его в STL?

I>Нет. Для этого есть boost, и со временем оно там скорее всего появится.

Спасибо, пример на АнсиСтринге меня убедил полностью.
Вопросов больше нет.
Ваша программа работает корректно? Один звонок и я всё исправлю!

Делаю потенциальные фичи :))
Re[11]: Польза стандартизации
От: WolfHound  
Дата: 07.12.02 11:03
Оценка:
Здравствуйте, Odi$$ey, Вы писали:

O$>какой такой Анси Стриннг? у меня в VC никакого такого анси стринга нету std::string однако есть
Он про отсой который борман си билдер завут.
Судя по постам мы говорим с одной из многочисленых жертв борманов...2Багер исправляться надо...надеюсь еще не позно...
... << RSDN@Home 1.0 beta 2 Enya — Only time>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[12]: Польза стандартизации
От: Багер  
Дата: 07.12.02 11:13
Оценка:
Здравствуйте, WolfHound, Вы писали:

WH>исправляться надо...надеюсь еще не позно...


Вот давайте только не будем доказывать друг другу, что разработка алгоритмов (не интерфейсов) идёт одинакого на С++ вообще. А вот разработка интерфейса, для тестирования алгоритма гораздо быстрее выполняется именно на Билдере, т.к. не нагружается программист особенностями визуализации. Или я не прав? Или вы можете в VC сделать ПрогрессБар, прижатый к низу окна, тремя кликами мыши?
Ваша программа работает корректно? Один звонок и я всё исправлю!

Делаю потенциальные фичи :))
Re[13]: Польза стандартизации
От: WolfHound  
Дата: 07.12.02 12:28
Оценка:
Здравствуйте, Багер, Вы писали:

Б>Вот давайте только не будем доказывать друг другу, что разработка алгоритмов (не интерфейсов) идёт одинакого на С++ вообще. А вот разработка интерфейса, для тестирования алгоритма гораздо быстрее выполняется именно на Билдере, т.к. не нагружается программист особенностями визуализации. Или я не прав? Или вы можете в VC сделать ПрогрессБар, прижатый к низу окна, тремя кликами мыши?

Я это сделаю на C#.
... << RSDN@Home 1.0 beta 2 Enya — Anywhere Is>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[14]: Польза стандартизации
От: Багер  
Дата: 07.12.02 12:49
Оценка:
Здравствуйте, WolfHound, Вы писали:

Да, однако, мне явно не показалось, что Микрософт стал стремиться к повторению интерфейсного удобства Билдера.
Ваша программа работает корректно? Один звонок и я всё исправлю!

Делаю потенциальные фичи :))
Re[15]: Польза стандартизации
От: WolfHound  
Дата: 07.12.02 14:56
Оценка:
Здравствуйте, Багер, Вы писали:

Б>Да, однако, мне явно не показалось, что Микрософт стал стремиться к повторению интерфейсного удобства Билдера.

Хм а что есть в BCB6 чего нет в VS.NET?
А вот обратный список:
Solution Explorer — У бормано жалкое кривое подобие View unit зовут.
Class view — У бормано жалкое кривое подобие Class explorer зовут.
Debuger — У борманов дебильный, ни чего не показывает и постоянно падает.
Autos — Может плохо искал но его у борманов я не видел.
Locals — У борманов дебильный, ни чего толком не показывает.
Watch — У борманов дебильный, ни чего толком не показывает.
Auto complite — тоже дурной.
Hints — Мло того что они тормозят они еще и выглядят так что лучше бы их небыло.
А про то что их библиотеки написаны так что хочеться громко материься, компилер тормозной, код генерит хреновый, и сама среда постоянно кидает AV я вобще молчу.

ЗЫ Скорей всего я еще чтото забыл.
... << RSDN@Home 1.0 beta 2 Enya — I May Not Awaken>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[16]: [moderator] Польза стандартизации
От: Павел Кузнецов  
Дата: 07.12.02 15:28
Оценка:
Здравствуйте, WolfHound, Вы писали:

Б>>Да, однако, мне явно не показалось, что Микрософт стал стремиться к повторению интерфейсного удобства Билдера.


WH>Хм а что есть в BCB6 чего нет в VS.NET?

WH>А вот обратный список: <...>

Предлагаю вам продолжить обсуждение достоинств и недостатков BCB и VC++ где-нибудь в другом форуме.
Легче одурачить людей, чем убедить их в том, что они одурачены. — Марк Твен
Re[17]: [moderator] Польза стандартизации
От: Багер  
Дата: 07.12.02 15:43
Оценка:
Здравствуйте, Павел Кузнецов, Вы писали:

ПК>Предлагаю вам продолжить обсуждение достоинств и недостатков BCB и VC++ где-нибудь в другом форуме.


А есть возможность писать личные сообщения? Как?
Ваша программа работает корректно? Один звонок и я всё исправлю!

Делаю потенциальные фичи :))
Re[18]: [moderator] Польза стандартизации
От: WolfHound  
Дата: 07.12.02 17:11
Оценка:
Здравствуйте, Багер, Вы писали:

Б>А есть возможность писать личные сообщения? Как?

Мылом оно в профайле.
... << RSDN@Home 1.0 beta 2 Enya — Morning Glory>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[11]: Польза стандартизации
От: Sergeem Израиль  
Дата: 09.12.02 10:00
Оценка:
Здравствуйте, ingie, Вы писали:

I>Здравствуйте, Багер, Вы писали:


Б>>Вот бинарное дерево, автобалансируемое — это да, но вот есть ли реализация его в STL?

I>Нет. Для этого есть boost, и со временем оно там скорее всего появится.

как нет? а как же map, set — они сделаны на основе red-black tree.

I>
Serge.

Hасколько проще была бы жизнь, если бы она была в исходниках.
Re[12]: Польза стандартизации
От: Багер  
Дата: 09.12.02 10:34
Оценка:
Здравствуйте, Sergeem, Вы писали:

S>как нет? а как же map, set — они сделаны на основе red-black tree.

А что это за основа — красно-чёрное дерево?
Можно попросить Вас привести пример кода с добавлением нового элемента в дерево, либо Мап, либо Сет — на Ваш выбор.

WolfHound, Билдер 6 посмотрите — половина того что Вы написали уже полгода, как неактуально ))

Павел Кузнецов, какой форум можно выбрать для "горячих" споров в стиле этого?
Ваша программа работает корректно? Один звонок и я всё исправлю!

Делаю потенциальные фичи :))
Re[13]: Польза стандартизации
От: Павел Кузнецов  
Дата: 09.12.02 10:39
Оценка:
Здравствуйте, Багер, Вы писали:

Б>Павел Кузнецов, какой форум можно выбрать для "горячих" споров в стиле этого?


VC++ vs. BCC — "средства разработки" или "прочее"
Легче одурачить людей, чем убедить их в том, что они одурачены. — Марк Твен
Re[12]: Польза стандартизации
От: ingie Россия  
Дата: 09.12.02 10:42
Оценка:
Здравствуйте, Sergeem, Вы писали:

S>как нет? а как же map, set — они сделаны на основе red-black tree.

Согласен. rb-tree есть в каждой реализации STL. Беда в том, что они не стандартизированы.
<< RSDN@Home 1.0 beta 2 >>
Re[13]: Польза стандартизации
От: Кодт Россия  
Дата: 09.12.02 13:07
Оценка:
Здравствуйте, ingie, Вы писали:

S>>как нет? а как же map, set — они сделаны на основе red-black tree.

I>Согласен. rb-tree есть в каждой реализации STL. Беда в том, что они не стандартизированы.

С другой стороны — а какая ценность у балансируемого бинарного дерева самого по себе?
Это инструмент, в частности, для создания упорядоченного контейнера.
Таковым является std::set и все его производные/аналоги (std::map, std::multi*** и т.д.)

Какие еще применения балансируемого дерева?
Перекуём баги на фичи!
Re[14]: Польза стандартизации
От: ingie Россия  
Дата: 09.12.02 20:22
Оценка:
Здравствуйте, Кодт, Вы писали:

I>>Согласен. rb-tree есть в каждой реализации STL. Беда в том, что они не стандартизированы.

Ну "беда" — это громко сказано...

К>С другой стороны — а какая ценность у балансируемого бинарного дерева самого по себе?

К>Это инструмент, в частности, для создания упорядоченного контейнера.
К>Таковым является std::set и все его производные/аналоги (std::map, std::multi*** и т.д.)

Верно, инструмент, но вся STL по большому счету — они и есть...

Ну так что мешает стандартизировать инструмент? Если бы и к этому были требования, то, я уверен, разница между различными реализациями STL еще сильнее сократилась бы.

К>Какие еще применения балансируемого дерева?


Дерево, — не важно какое, — это уже сама по себе интересная идиома, начиная с того, что существующие итераторы с точки зрения логики не имеют ничего общего с теми методами доступа которые могут быть у дерева. Я легко представляю себе реализацию, ну например, XML-парсера, c использованием дерева, а вот map — для этого, на мой взгляд не очень подходит. Короче, в окружающем мире дофига иерархических структур, почему бы не отобразить их прямо в таком виде на машинную память и не использовать интуитивные операции доступа? Да взять хотя бы MIB в SNMP, за пять минут программируется устройство с такой базой на деревьях... А с множествами? Если честно, то я предпочел бы видеть в STL именно деревья, а не все эти multi*... boost с этой точки зрения радует, там взялись сразу за графы...
<<RSDN@Home 1.0 beta 2 >>
Re: Что такое "STL контейнеры"? И чем они полезны?
От: WildCat  
Дата: 10.12.02 01:01
Оценка:
Здравствуйте, Багер, Вы писали:

Избыточные текстовые выделения и цитирование удалены модератором. -- ПК

Б>Что такое "STL контейнеры"?


Неудачная попытка обобщить необобщаемое. Типичный пример complex engineering.
Re[2]: Что такое "STL контейнеры"? И чем они полезны?
От: Mozhay Россия www.mozhay.chat.ru
Дата: 10.12.02 01:56
Оценка:
Здравствуйте, WildCat, Вы писали:
WC>Неудачная попытка обобщить необобщаемое. Типичный пример complex engineering.

Во-первых, вполне обобщаемое. По крайней мере, есть слово "понятие" ("concept"), на основе чего можно судить об обобщаемости.

Во-вторых, нельзя ли поподробнее, чем эта попытка неудачна? И что есть complex engineering?
Re[15]: Польза стандартизации
От: Кодт Россия  
Дата: 10.12.02 07:53
Оценка:
Здравствуйте, ingie, Вы писали:

I>Дерево, — не важно какое, — это уже сама по себе интересная идиома, начиная с того, что существующие итераторы с точки зрения логики не имеют ничего общего с теми методами доступа которые могут быть у дерева. Я легко представляю себе реализацию, ну например, XML-парсера, c использованием дерева, а вот map — для этого, на мой взгляд не очень подходит. Короче, в окружающем мире дофига иерархических структур, почему бы не отобразить их прямо в таком виде на машинную память и не использовать интуитивные операции доступа? Да взять хотя бы MIB в SNMP, за пять минут программируется устройство с такой базой на деревьях... А с множествами? Если честно, то я предпочел бы видеть в STL именно деревья, а не все эти multi*... boost с этой точки зрения радует, там взялись сразу за графы...


Так ведь дерево вообще, а не красно-черное сбалансированное двоичное...

Структура узла может варьироваться: фиксированное количество ветвей (двоичное дерево), произвольное...

И правила доступа к дереву отличаются от контейнеров... и зависят от смысла этой структуры.
Например, в дереве двоичного поиска — один вид упорядочивания (левая ветвь — узел — правая ветвь), а в пирамиде и б-дереве — другой (узел — первая ветвь — вторая ветвь... и ветвей может быть много). Пирамида вообще эффективно реализуется на векторе.

Поэтому, наверное, лучше изготовить/найти библиотеку структур и алгоритмов для той или иной задачи, чем валить все в STL.
Перекуём баги на фичи!
Re[16]: Польза стандартизации
От: ingie Россия  
Дата: 10.12.02 09:03
Оценка:
Здравствуйте, Кодт, Вы писали:

К>Так ведь дерево вообще, а не красно-черное сбалансированное двоичное...

Ну это конечно, изначально именно они имелись ввиду, это потом кто-то про rb вставил...
Согдасен. Правда обидно за дерево, все есть в STL а его нет...
<< RSDN@Home 1.0 beta 2 >>
Re[17]: Польза стандартизации
От: Павел Кузнецов  
Дата: 10.12.02 09:05
Оценка:
Здравствуйте, ingie, Вы писали:

I>обидно за дерево, все есть в STL а его нет... ;)


Во время стандартизации не было ни сложившейся практики использования шаблонов деревьев, ни толкового proposal по этому поводу.
Легче одурачить людей, чем убедить их в том, что они одурачены. — Марк Твен
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.