我无法找到答案,如果有重复,请提前抱歉。
vector<char>
创建string
。std::string s("I'm afraid. I'm afraid, Dave.");
std::vector<char> temp;
for (size_t x = 0; x < s.size(); x++)
{
temp.push_back(s[x]);
}
由于
答案 0 :(得分:7)
用这样的迭代器构造一个范围:
std::vector<char> temp(s.begin(), s.end());
答案 1 :(得分:0)
使用std::copy()
:
std::copy( std::begin( string ) , std::end( string ) , std::back_inserter<char>( vector ) );
或者使用std::vector
ctor的重载,该范围需要初始化范围:
std::vector<char> vector{ std::begin( string ) , std::end( string ) };
答案 2 :(得分:0)
您可以尝试以下操作:
std::string str = "I'm afraid. I'm afraid, Dave.";
std::vector<char> data(str.begin(), str.end());