Подтвердить что ты не робот

Как скопировать std::string в std::vector <char>?

Возможный дубликат:
Преобразование std::string в std::vector <char>

Я пробовал:

std::string str = "hello";
std::vector<char> data;
std::copy(str.c_str(), str.c_str()+str.length(), data);

но он не работает = (Поэтому мне интересно, как скопировать std::string в std::vector<char> или std::vector<uchar>?

4b9b3361

Ответ 1

std::vector имеет конструктор, который принимает два итератора. Вы можете использовать это:

std::string str = "hello";
std::vector<char> data(str.begin(), str.end());

Если у вас уже есть вектор и вы хотите добавить символы в конце, вам потребуется встроенный вставщик:

std::string str = "hello";
std::vector<char> data = /* ... */;
std::copy(str.begin(), str.end(), std::back_inserter(data));

Ответ 2

Для копирования в векторы требуется обратный вставщик:

std::copy(str.c_str(), str.c_str()+str.length(), back_inserter(data));