Possible Duplicate:
Converting std::string to std::vector<char>
I tried:
std::string str = "hello"; std::vector<char> data; std::copy(str.c_str(), str.c_str()+str.length(), data);
but it does not work=( So I wonder How to copy std::string
into std::vector<char>
or std::vector<uchar>
?
std::string str = "hello"; std::vector<char> data; std::copy(str. c_str(), str. c_str()+str. length(), data);
It's called "deep copy". If only the pointer itself was copied and not the memory contents, it would be called "shallow copy". To reiterate: std::string performs deep copy in this case.
std::vector
has a constructor that takes two iterators. You can use that:
std::string str = "hello"; std::vector<char> data(str.begin(), str.end());
If you already have a vector and want to add the characters at the end, you need a back inserter:
std::string str = "hello"; std::vector<char> data = /* ... */; std::copy(str.begin(), str.end(), std::back_inserter(data));
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With