А знает кто-нибудь, на сколько быстно работают vector или deque? Насколько операции доступа к элементам проигрывают по сравнению с простейшим самописным контейнером на основе массивов (если предположить, что размер массива будет меняться редко)?
Интереснее исследовать обратное, поскольку библиотека появилась еще в 80-х и с тех пор её вылизали так, что еще постараться надо сделать лучше
Vector сделан на основе встроенного массива, операции доступа ни чем не отличаются
Если размер массива будет меняться редко vector идеальное решение
Deque это бинарное дерево массивов, доступ к элементу требует поиска в дереве, соотвественно медленней чем у вектора, но операции вставки и удаления быстрее, у вектора с этим совсем плохо если добавляем/удаляем не последний элемент
Вообще раз возникают такие вопросы советую почитать структуры данных, из хороших книг могу посоветовать Кнута и "Алгоритмы" Кормена
Самое верное - это заглянуть в исходный код STL и посмотреть своими глазами. Однозначный ответ дать трудно, потому что у каждого варианта реализации STL есть свои достоинства и недостати. В борланде, например, вся библиотека вынесена в отдельную DLL... А под MSVC все методы классов - инлайновые... Но ничего, работают же люди, не жалуются..
У тебя не верное представление о STL (или о C++
), это библиотека шаблонов, а шаблоны не могут быть вынесены в отдельную DLL, при компиляции требуется код методов иначе инстанциировать просто нечего
В STL практически все методы инлайновые, почему люди должны на это жаловаться если так код будет работать быстрее ?