将一段矢量复制到另一个矢量中

时间:2016-03-21 14:05:07

标签: c++ vector

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);

1 个答案:

答案 0 :(得分:0)

您可以使用以下方法直接构建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