Rzutowanie std::vector

0

Czy jest możliwe rzutowanie z vectora<int> na vector<double> i na odwrót ? Jeśli tak to jakich/ego operatorów/a rzutowania trzeba użyć ?

0

jakie rzutowanie!?
to sa klasy tutaj mozesz ewentuyalnie przepisac elementy z jednego wektora do drugiego np tak:

vector<int> v1;
vector<double> v2;
/* ... */

v2.assign( v1.begin(), v1.end() );

i na odwrot

0

Jak chcesz mozesz to zrobić w ten sposób:

std::vector<int> v1;
std::vector<double> v2;
/ ... /

std::vector<int>::iterator it=v1.begin();
while(it!=v2.end())
{
v2.push_back(static_cast<double>(*it));
++it;
}

0
Maker napisał(a)

jakie rzutowanie!?
to sa klasy tutaj mozesz ewentuyalnie przepisac elementy z jednego wektora do drugiego np tak:


vector<int> v1;
vector<double> v2;
/* ... */

v2.assign( v1.begin(), v1.end() );


> i na odwrot

No właśnie wiem że vectory to klasy, ale wiem także że klasy wcale ni są gorsze od typów wbudowanych... Pomyślałem sobie o operatorze dynamic_cast, który odpowiada za rzutowanie polimorficzne... No cóż, skoro się nie da więc będę musiał jakoś to obejść.
0

polimorfizm to zjawisko zachodzace dla klas abstrakcyjnych(lub klas zawierajacych jakies metody wirtualne) a poniewaz vector nie jest klasa abstrakcyjna(bo nie mozna tworzyc instancji obiektow abstrakcyjnych w koncu sa abstrakcyjne ;)) to raczej o polimorfizmie tutaj mowic nie mozesz.

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0