Как скопировать 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>
?
Ответы
Ответ 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));