Информация об изменениях

Сообщение Re: как эффективно передать элементы из одного вектора в дру от 07.04.2016 15:56

Изменено 07.04.2016 15:57 SaZ

Здравствуйте, sci_reseacher, Вы писали:

_>Уважаемые форумчане!


_>Как наиболее эффективно (правильно) выполнить передачу (копирование, перемещение ... ) значений из одного вектора x (внутри объекта некоторого класса) в другой вектор y или z, который находиться вне класса в С++11?



  Скрытый текст
_>

_>class A {
_>      std::vector<int> x;
_>public:
_>      A(){
_>          x.resize(5,10);
_>      }
_>      const std::vector<int> & f(){
_>          return x ;
_>      }

_>      void g(std::vector<int>::iterator beg){
_>           std::copy(x.begin(),x.end(),beg);
_>      }
_>};

_>int main(){
_>     A a;
_>     std::vector<int> y(5);
_>     std::vector<int> z(5);
_>     y = a.f();
_>     a.g(z.begin());
_>     for(auto elem: y) std::cout << elem << " ";
_>     for(auto elem: z) std::cout << elem << " ";
_>}
_>


Я бы юзал std::swap
Re: как эффективно передать элементы из одного вектора в дру
Здравствуйте, sci_reseacher, Вы писали:

_>Уважаемые форумчане!


_>Как наиболее эффективно (правильно) выполнить передачу (копирование, перемещение ... ) значений из одного вектора x (внутри объекта некоторого класса) в другой вектор y или z, который находиться вне класса в С++11?



  Скрытый текст
_>

_>class A {
_>      std::vector<int> x;
_>public:
_>      A(){
_>          x.resize(5,10);
_>      }
_>      const std::vector<int> & f(){
_>          return x ;
_>      }

_>      void g(std::vector<int>::iterator beg){
_>           std::copy(x.begin(),x.end(),beg);
_>      }
_>};

_>int main(){
_>     A a;
_>     std::vector<int> y(5);
_>     std::vector<int> z(5);
_>     y = a.f();
_>     a.g(z.begin());
_>     for(auto elem: y) std::cout << elem << " ";
_>     for(auto elem: z) std::cout << elem << " ";
_>}
_>


Я бы юзал std::swap (для перемещения)