Qt не використовує стандартну бібліотеку C ++ , але має власні QString, QVector, QMap, ...
Це означає, що ви повинні прийняти важливе дизайнерське рішення: в яких частинах програми буде використовуватися QString та в яких частинах буде використовуватися std :: string?
Використання std :: string в деяких частинах та QString в інших частинах, означає, що вам доведеться конвертувати між QString і std :: string в бундеріях.
Щоб уникнути накладних витрат, можна вирішити використовувати QString у всій програмі. Але це значно ускладнює використання сторонніх бібліотек, які не базуються на Qt, наприклад, boost.
(Зверніть увагу, що те саме стосується std :: map vs QMap, std :: vector vs QVector тощо)
Визначення того, які деталі використовують типи Qt, а в яких частинах використовується STL, є головним дизайнерським рішенням з великими наслідками. І лише тому, що Qt відмовляється від використання стандартної C ++ бібліотеки.
ІМХО, це рішення може піти в будь-який бік, залежно від проекту. Тому я не можу відповісти на ваше запитання, якого слід уникати.