【问题标题】:Copy vector element of a vector to another vector [closed]将向量的向量元素复制到另一个向量[关闭]
【发布时间】:2015-11-02 00:24:33
【问题描述】:

我有这个向量,

std::vector <std::vector<std::string> > gname;

gname.push_back(std::vector<std::string>({"John","jake"}));
gname.push_back(std::vector<std::string>({"May", "harold}));

我想将 gname 中的所有值放入,

std:vector<std::string> cname;

这可能使用 c++11 吗?

【问题讨论】:

  • 无论使用 C++11,它都是可能的。或者您是否从&lt;algorithm&gt; 询问了一些具体的问题?
  • 是的。使用算法库。
  • 简单的for怎么样?
  • 可以,但是有没有使用c++11的班轮?
  • this 问题的可能重复项。

标签: c++ c++11


【解决方案1】:

这是一个单线。没什么花哨的,但它是可读的......

for (auto& vec : gname) { cname.insert(cname.end(), vec.begin(), vec.end()); }

【讨论】:

    【解决方案2】:

    补充 Karolys 精细的单线。这是一个使用&lt;algorithm&gt;

    std::for_each(gname.begin(), gname.end(), 
            [&cname](const std::vector<std::string>& stuff){
        cname.insert(cname.end(), stuff.begin(), stuff.end());});
    

    不过,如果它符合单线的条件,则值得商榷。

    【讨论】:

      猜你喜欢
      • 2012-06-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-21
      • 1970-01-01
      • 2016-07-08
      • 1970-01-01
      相关资源
      最近更新 更多