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);
答案 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);
}