Qt non usa la libreria standard C ++ , ma ha il suo QString, QVector, QMap, ...
Questo significa che devi prendere una decisione importante sul design: quali parti dell'applicazione useranno QString e quali parti useranno std :: string?
Usando std :: string in alcune parti e QString in altre parti, significa che dovrai convertire tra QString e std :: string sui confini.
Per evitare questo sovraccarico, si potrebbe decidere di utilizzare QString su tutta l'applicazione. Ma ciò rende molto più difficile l'uso di librerie di terze parti che non sono basate su Qt, ad es. spinta.
(Si noti che lo stesso vale per std :: map vs QMap, std :: vector vs QVector e così via)
Decidere quali parti usano i tipi di Qt e quali parti usano l'STL è una decisione progettuale importante, con importanti implicazioni. E solo perché Qt si rifiuta di usare la libreria standard C ++.
IMHO, quella decisione potrebbe andare in entrambi i modi, a seconda del progetto. Quindi non posso rispondere alla tua domanda quale evitare.