Долгое время я соглашался с большинством ответов здесь. Однако, только сегодня меня поразило, почему было бы разумнее использовать std::string
вместо std::vector<unsigned char>
.
Как большинство соглашается, использование любого из них будет прекрасно работать. Но часто файловые данные на самом деле могут быть в текстовом формате (более распространенный сейчас, когда XML стал основным). Это облегчает просмотр в отладчике, когда он становится уместным (и эти отладчики часто в любом случае позволяют вам перемещаться по байтам строки). Но что более важно, многие существующие функции, которые могут использоваться в строке, могут легко использоваться в файловых / двоичных данных. Я обнаружил, что пишу несколько функций для обработки как строк, так и байтовых массивов, и понял, насколько все это бессмысленно.