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ć ?
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
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;
}
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ść.
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.