How to move elements from one vector to another in C++

2 Answers

0 votes
#include <iostream>    
#include <vector> 

void printVector(std::vector<std::string> const &v) {
    for (auto const &s: v) {
        std::cout << s << " ";
    }
}

int main () {
    std::vector<std::string> vec1 = {"c++", "c", "c#", "java", "python"};
    std::vector<std::string> vec2(3);

    std::move(vec1.begin(), vec1.begin() + 3, vec2.begin());

    std::cout << "\n" << "vec1 size " << vec1.size() << "\n";
    printVector(vec1);
    
    std::cout << "\n" << "vec2 size " << vec2.size() << "\n";
    printVector(vec2);
}
  
  
 
  
  
/*
run:
  
vec1 size 5
   java python 
vec2 size 3
c++ c c# 
  
*/

 



answered Nov 25, 2022 by avibootz
0 votes
#include <iostream>    
#include <vector> 

void printVector(std::vector<std::string> const &v) {
    for (auto const &s: v) {
        std::cout << s << " ";
    }
}

int main () {
    std::vector<std::string> vec1 = {"c++", "c", "c#", "java", "python"};
    std::vector<std::string> vec2(3);

    std::move(vec1.begin(), vec1.begin() + 3, vec2.begin());
    
    vec1.erase(vec1.begin(), vec1.begin() + 3);

    std::cout << "\n" << "vec1 size " << vec1.size() << "\n";
    printVector(vec1);
    
    std::cout << "\n" << "vec2 size " << vec2.size() << "\n";
    printVector(vec2);
}
  
  
 
  
  
/*
run:
  
vec1 size 2
java python 
vec2 size 3
c++ c c# 
  
*/

 



answered Nov 25, 2022 by avibootz

Related questions

2 answers 250 views
250 views asked Apr 28, 2018 by avibootz
3 answers 300 views
1 answer 264 views
1 answer 204 views
1 answer 237 views
2 answers 245 views
...