Qt no utiliza la biblioteca estándar de C ++ , pero tiene su propio QString, QVector, QMap, ...
Esto significa que debe tomar una decisión de diseño importante: ¿qué partes de la aplicación usarán QString y qué partes usarán std :: string?
El uso de std :: string en algunas partes y QString en otras partes, significa que tendrá que convertir entre QString y std :: string en los límites.
Para evitar esa sobrecarga, uno podría decidir usar QString en toda su aplicación. Pero eso hace que sea mucho más difícil usar bibliotecas de terceros que no estén basadas en Qt, por ejemplo, boost.
(Tenga en cuenta que lo mismo se aplica a std :: map vs QMap, std :: vector vs QVector, etc.)
Decidir qué partes usan los tipos de Qt y qué partes usan el STL es una decisión de diseño importante, con implicaciones importantes. Y solo porque Qt se niega a usar la biblioteca estándar de C ++.
En mi humilde opinión, esa decisión podría ir en cualquier dirección, dependiendo del proyecto. Así que no puedo responder a su pregunta cuál evitar.