являются ли алгоритмы и контейнеры STL c++ одинаковыми для разных платформ и производительности?


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

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

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

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

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

3 4

3 ответа:

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

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

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

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

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

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

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

Зависит от правил соревнований.

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

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

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

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

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

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

3) не в ядре.

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