2016-03-21 13 views
0

std::vector V enthält Elemente a1, a2 ,a3, a4, a5, a6 und ich muss Elemente von a2 zu a4 in einem neuen std::vector NV kopieren.Kopieren eines Segments des Vektors in einen anderen Vektor

Wie ist es möglich, den Vektorbereich in einen neuen Vektor zu kopieren? ich habe das in meinem Code nach Empfehlungen aber immer noch ich bin nicht in der Lage, herauszufinden, dass? Der Teil beteiligt ist dieser.

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

Antwort

0

können Sie die NV konstruieren direkt mit diesem:

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

Beispiel:

#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

+0

@Human HELFAWI kann u athe oben Code schauen, wo ich bin versuchen, aus dem Index i + 1 zu kopieren, um i + k von avector in neue ve zu indizieren ctor nv – kolaveri

Verwandte Themen