【问题标题】:copying one segment of vector into another vector [duplicate]将一段向量复制到另一个向量中[重复]
【发布时间】:2016-07-08 02:05:49
【问题描述】:

std::vector V 包含元素a1, a2 ,a3, a4, a5, a6,我需要将元素从a2 复制到a4 中的新std::vector NV

如何将向量范围复制到新向量中? 我按照建议在我的代码中做了这个,但我仍然无法弄清楚?所涉及的部分就是这个。

                       vector<int>::const_iterator first = v.begin() + i+1;
                       vector <int>::const_iterator last = v.begin() + i+k;
                       vector<int>:: nv(first, last);

【问题讨论】:

    标签: c++ vector


    【解决方案1】:

    你可以直接使用这个来构建 NV:

    std::vector<T> NV(std::next(V.begin(),1),std::next(V.begin(),3));
    

    示例:

    #include <iostream>
    #include <string>
    #include <vector>
    #include <iterator>
    #include <algorithm>
    int main()
    {
        auto print=[](const auto& container){
            for(const auto& item:container){
                std::cout << item << "\t";     
            }
            std::cout << "\n";
        };
        std::vector<std::string> V{ "a1", "a2" ,"a3", "a4","a5","a6"};
        print(V);
        std::vector<std::string> NV(std::next(std::begin(V),1),std::next(std::begin(V),4));
        print(NV);
    }
    

    Live Demo

    【讨论】:

    • @Human HELFAWI 你能看看上面的代码,我试图从索引 i+1 复制到 avector 的索引 i+k 到新的向量 nv
    猜你喜欢
    • 1970-01-01
    • 2021-01-23
    • 1970-01-01
    • 2018-10-02
    • 2013-03-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多