+ 1 для EASTL.
Все, что основано на компиляторе, совместимом с C ++ 11, потенциально будет работать намного лучше из-за семантики перемещения.
Это различие уже можно заметить с помощью реализации GNU libstdc ++ с -std=c++0x
Для контейнеров с параллельным доступом и без блокировки я рекомендую:
- libCds от Max Khiszinsky
- TBB от Intel (без практического опыта)
Мой центральный совет будет следующим:
Оптимизация стандартной библиотеки - это в основном фактор, определяющий, как правильно использовать алгоритмы / контейнеры, чем поискдля «идеальной» реализации.STL, будучи универсальным, никогда не будет идеальной реализацией.
Просто внимательно следите за вашими возвращаемыми / выходными параметрами (предпочитайте использовать выходные итераторы и используйте transform
, partial_sum
, accumulate
в контейнер, для которого reserve
или resize
вызван соответствующим образом; определите swap
для ваших типов элементов и т. д.)