сделать
MyList lst;
std :: vector v = lst;
Для того, чтобы вышеуказанное сработало, вам нужно перегрузить operator std::vector<int> ()
(или любой другой тип переменной, совместимый с std::vector<int>
) в MyList
, см. Следующий пример.
Другой способ сделать это - предоставить метод, который вы явно вызываете для возврата std::vector<int>
" версии " вашего объекта. std::vector<int> v = obj.to_int_vector ()
, это в значительной степени та же реализация, что и в приведенном ниже примере.
Пример
#include <iostream>
#include <vector>
#include <iterator>
#include <algorithm>
struct Obj {
operator std::vector<int> () const {
return std::vector<int> (data, data+3);
}
int data[3];
};
int
main (int argc, char *argv[])
{
Obj o;
o.data[0] = -1;
o.data[1] = 2;
o.data[2] = 99;
std::vector<int> v = o;
std::copy (v.begin (), v.end (), std::ostream_iterator<int> (std::cout, " "));
}
выход:
-1 2 99