Являются ли алгоритмы и контейнеры c ++ STL одинаковыми для разных платформ и производительности? - PullRequest
4 голосов
/ 10 марта 2010

Изучив большое количество c ++, я теперь в библиотеке шаблонов контейнеров и алгоритмов STL, мои основные проблемы:

1) Эта библиотека одинакова для разных платформ, таких как MS, Linux и другие ОС?

2) снизится качество или эффективность программного модуля c ++ при более широком использовании контейнеров и алгоритмов STL, думаю, я не смогу настроить его под все потребности.

3) Хороша ли эта библиотека шаблонов для системного программирования linux, модулей ядра?

4) наконец, могу ли я использовать это в соревнованиях по программированию, потому что это переживает много кодирования и давления с плеч.

Ответы [ 3 ]

5 голосов
/ 10 марта 2010

1) Эта библиотека одинакова для разных платформ, таких как MS, Linux и другие ОС?

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

2) снизится качество или эффективность программного модуля c ++ при более широком использовании контейнеров и алгоритмов STL, думаю, я не смогу настроить его под все потребности.

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

3) Хороша ли эта библиотека шаблонов для системного программирования linux, модулей ядра?

Лучше использовать C для ядра.

4) наконец, могу ли я использовать это в соревнованиях по программированию, потому что это переживает много кодирования и давления с плеч.

Зависит от правил проведения конкурсов.

4 голосов
/ 10 марта 2010

1) Стандарт (интерфейс) такой же. Реализация другая.

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

3) Не для модулей ядра, да для приложений пользовательского режима.

4) Обычно конкурсы C ++ допускают STL.

3 голосов
/ 10 марта 2010

1) API же. Ограничивающее поведение, указанное в стандарте (например, O (n)). Реализация зависит от поставщика. Означает, что вы можете рассчитывать на масштабирование вашего приложения.

2) Пока вы задаете эти вопросы, качество и эффективность вашего кода, вероятно, улучшаются с помощью STL.

3) Не в ядре.

4) Конкурсы C ++ должны разрешать STL.

...