fork(1) download
  1. #include <iostream>
  2. #include <memory>
  3. #include <vector>
  4. using namespace std;
  5.  
  6. int main() {
  7. std::unique_ptr<std::vector<int> > uptr(new std::vector<int>);
  8.  
  9. uptr->push_back(23);
  10. uptr->push_back(45);
  11. uptr->push_back(34);
  12.  
  13. std::cout << "uptr size = " << uptr->size() << std::endl;
  14. for (auto i=0; i < uptr->size(); ++i) {
  15. std::cout << "(*uptr)[" << i << "] = " << (*uptr)[i] << std::endl;
  16. }
  17. std::cout << std::endl;
  18.  
  19. std::vector<int> v = std::move(*uptr);
  20.  
  21. std::cout << "uptr size post move = " << uptr->size() << std::endl;
  22. for (auto i=0; i < uptr->size(); ++i) {
  23. std::cout << "(*uptr)[" << i << "] = " << (*uptr)[i] << std::endl;
  24. }
  25. std::cout << std::endl;
  26.  
  27. std::cout << "moved vec size = " << v.size() << std::endl;
  28. for (auto i=0; i < v.size(); ++i) {
  29. std::cout << "v[" << i << "] = " << v[i] << std::endl;
  30. }
  31. std::cout << std::endl;
  32.  
  33. return 0;
  34. }
Success #stdin #stdout 0s 3464KB
stdin
Standard input is empty
stdout
uptr size = 3
(*uptr)[0] = 23
(*uptr)[1] = 45
(*uptr)[2] = 34

uptr size post move = 0

moved vec size = 3
v[0] = 23
v[1] = 45
v[2] = 34