[英]Convert a vector<vector<char>> into a vector<string>
我有一個
std::vector<std::vector<char>>
並想用其內容填充std::vector<string>
。
我只是不敢思考如何訪問的內部向量並將字符放入字符串向量中。
也許我錯了,但我認為std::vector<char>
就像一個字符串。 因此,這並不難,我只是被困在某個地方。
我見過: vector <string>或vector <vector <char>>? 但這並沒有使我走遠。
謝謝你的幫助。
這是algorithm
版本
std::vector<std::vector<char>> a;
std::vector<std::string> b;
std::transform(a.begin(), a.end(), std::back_inserter(b),
[](std::vector<char> const& v) -> std::string {
return {v.begin(), v.end()};
});
天真的解決方案應該足夠好工作:
std::vector<std::string>
chars_to_string(std::vector<std::vector<char>> const & in)
{
std::vector<std::string> out;
out.reserve(in.size());
for (auto const & v : in)
out.emplace_back(v.begin(), v.end());
return out;
}
這應該工作
std::vector<string> vec;
for(std::vector<std::vector<char>>::iterator itr = source.begin();
itr != source.end(); ++itr) {
vec.push_back(std::string(itr.begin(),itr.end()));
);
我認為您可以做到:
std::vector<char> v_char;
std::string my_string(v_char.begin(), v_char.end());
或者(需要C ++ 11並且char的向量必須以NULL終止):
std::string my_string(v_char.data());
一旦有了std::string
,填充向量就很容易了。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.