簡體   English   中英

轉換向量 <vector<char> &gt;變成向量 <string>

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM