Здравствуйте, rg45, Вы писали:
R>Я как-то затрудняюсь представить, какую нужно допустить ошибку, чтобы возникли затруднения с использованием std::string, или std::vector.

std::string — засунуть '\0' в середину и удивляться выводу...
например, так:
char asdf[20];
.... //получение данных в asdf от устройства
std::string str(std::begin(asdf), std::end(asdf));
std::vector — ну, классика — это конструктор с двумя аргументами.
Вот из недавнего:
std::vector<char> factorList{0x20, 0x80};
— компиляция пройдёт или нет, в зависимости от того , какой нынче
char у компилятора, но если исправить на
std::vector<char> factorList(0x20, 0x80);
то можно получить цвет детской неожиданности.