Раньше я использовал классы сбора MFC, такие как CArray
и CMap
. Через некоторое время я переключился на контейнеры STL и использовал их некоторое время. Хотя я считаю STL намного лучше, я не могу точно указать его причины. Некоторые рассуждения, такие как:Почему контейнеры STL предпочтительнее контейнеров МФЦ?
- Это требует MFC: не имеет, потому что другие части моей программы использует MFC
- Это зависит от платформы:. Не выполняется, потому что я бегу мое приложение только на окнах (Нет потребность в мобильности)
- Он определен в стандарте с ++: Хорошо, но MFC контейнеры все еще работают
Единственная причина, которую я мог придумать, что я могу использовать алгоритмы на контейнеры. Есть ли какая-либо другая причина, по которой мне здесь не хватает - что делает контейнеры STL лучше, чем контейнеры MFC?
Возможно, вы захотите добавить к названию этого вопроса, что переносимость не является проблемой. Только название не отражает некоторые ваши требования прямо сейчас. –
STL определенно лучше, поскольку все ответы утверждают, но то, что действительно меня отталкивает, заключается в том, что все еще написано ppl с использованием контейнеров MFC. Конечно, они в основном используют контейнеры шаблонов, но перемещение между ними бесполезно. Почему MS не осуждает их и не добавляет к ним итераторов, просто они сидят на заборе, обманывая всех остальных. – Adrian
@Adrian, потому что некоторые из нас должны использовать устаревший код, но хотят использовать новейшие инструменты. Обеспечение поддержки старого материала, но и поощрение нового материала является лучшим из обоих миров. Поверьте мне, это пометит меня гораздо больше, если MS удалит старые контейнеры. Рассмотрите тот факт, что если вы используете MFC, вы, вероятно, имеете дело с «устаревшим» приложением -ish в первую очередь. :-D – franji1