Мне нравится ответ Стефана (11–13 сентября), но я бы хотел сделать его немного сильнее:
Если вектор заканчивается нулевым терминатором, вы не должны использовать (v.begin (), v.end ()): вы должны использовать v.data () (или & v [0] для тех, кто до C + +17).
Если v не имеет нулевого терминатора, вы должны использовать (v.begin (), v.end ()).
Если вы используете begin () и end () и у вектора действительно есть завершающий ноль, вы получите, например, строку "abc \ 0", которая имеет длину 4, но должна быть только " а».