2
malinЦитата:
Теперь вопрос: зачем были придуманы эти QVector, QList, ...., если есть стандартные vector, list, ....?
Многих разработчиков (например, программистов игр под консольные платформы) не устраивает некоторая "непредсказуемость" существующих реализаций STL и поэтому они пишут свои варианты этой библиотеки. Причем иногда результат очень сильно отличается от STL, хотя баланс между традиционностью и производительностью как правило сохраняется, что делает возможным повторное использование кода, привлечение сторонних разработчиков и т.д.
Цитата:
Второй вопрос: в чём всё-таки следует хорошо разобраться? В STL или в этом "QSTL", если планирую дальнейшее изучение QT?
Не помешало бы хорошо разобраться в QTL. Более менее хорошее знание STL и так подразумевается если вы пишите на C++. Т.е., в итоге, придется учить и то и то; ну а что вы хотели.
Вообще, если при разработке проекта планируется широкое использование стандартной библиотеки, использование legacy-кода, или использование кода будущего продукта в других проектах, то основную логику, другими словами большую часть проекта, все-таки лучше писать под STL (хотя бы ради этой самой reusability и поддержки со стороны стандарта). А вот часть проекта, имеющую глубокие зависимости с Qt необходимо писать с использованием QTL, что позволит избежать лишних (и возможно дорогих) преобразований между объектами, предоставляемыми этими все-таки разными библиотеками.
Так что ответы на ваши вопросы кроются в самих основах проектирования. Нужно стремиться уменьшать количество зависимостей и количество преобразований, постоянно при этом думая о повторном использовании (да, это три несовместимые вещи
).
Так же, в дополнение к ссылке, приведенной
Xaositect'ом, думаю, стоит поискать какое-нибудь rationale в самой Qt-документации.
P.S.: Сам Qt не пользуюсь, изобретаю велосипеды, пока доволен.