Может ли std :: vector рассматриваться как массив - PullRequest
9 голосов
/ 05 декабря 2011

Может ли std::vector<char> рассматриваться как массив следующим образом:

std::vector<char> v(10);
strncpy(&v[0], "hello", 9); // <-- Is this safe?

1 Ответ

14 голосов
/ 05 декабря 2011

Да, все в порядке. Начиная с C ++ 03, vector должен иметь непрерывное хранилище.

Что касается C ++ 11, то же самое относится и к std::string, кстати; и вы можете сказать v.data() как синоним для &v[0] (который также действителен, когда v пуст).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...