являются ли алгоритмы и контейнеры STL c++ одинаковыми для разных платформ и производительности?
После изучения хорошего количества c++, я теперь в STL контейнеры и алгоритмы библиотеки шаблонов, мои основные проблемы,
1) является ли эта библиотека одинаковой на разных платформах, таких как MS, linux и другие ОС?
2) снизится ли качество или эффективность модуля program c++ с большим использованием контейнеров и алгоритмов STL, я думаю, что не смогу настроить его на все нужды.
3) Хорошо ли использовать эту библиотеку шаблонов в системном программировании linux, модулях ядра?
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.