Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- vector<Shape*> v(0);
- v.push_back(new Triangle ({0, 0}, {2, 2}, {-2, -2}));
- v.push_back(new RegularPentagon ({0, 0}, 2));
- v.push_back(new Trap ({0, 2}, {2, 2}, {-2, -2}, {4, -2}));
- sort(v);
- */
- list<Shape*> l1;
- l1.push_back(new Triangle ({0, 0}, {2, 2}, {-2, -2}));
- l1.push_back(new RegularPentagon ({0, 0}, 2));
- l1.push_back(new Trap ({0, 2}, {2, 2}, {-2, -2}, {4, -2}));
- for(list_iterator<Shape*> it = l1.begin(); it != l1.end(); it++){
- Triangle* trig = dynamic_cast<Triangle*>(*it);
- Trap* trap = dynamic_cast<Trap*>(*it);
- RegularPentagon* pent = dynamic_cast<RegularPentagon*>(*it);
- if(trig){
- std::cout<< *trig<<std::endl;
- } if(trap){
- std::cout<< *trap<<std::endl;
- } if(pent){
- std::cout<< *pent<<std::endl;
- }
- std::cout<<std::endl;
- }
- list<Shape*> l2;
- l2.push_back(new Trap ({0, 2}, {2, 2}, {-2, -2}, {4, -2}));
- l2.push_back(new RegularPentagon ({0, 0}, 2));
- l2.push_back(new Triangle ({0, 0}, {2, 2}, {-2, -2}));
- for(list_iterator<Shape*> it = l2.begin(); it != l2.end(); it++){
- Triangle* trig = dynamic_cast<Triangle*>(*it);
- Trap* trap = dynamic_cast<Trap*>(*it);
- RegularPentagon* pent = dynamic_cast<RegularPentagon*>(*it);
- if(trig){
- std::cout<< *trig<<std::endl;
- } if(trap){
- std::cout<< *trap<<std::endl;
- } if(pent){
- std::cout<< *pent<<std::endl;
- }
- std::cout<<std::endl;
- }
- for(list_iterator<Shape*> it1 = l1.begin(); it1 != l1.end(); it1++){
- Triangle* trig1 = dynamic_cast<Triangle*>(*it1);
- Trap* trap1 = dynamic_cast<Trap*>(*it1);
- RegularPentagon* pent1 = dynamic_cast<RegularPentagon*>(*it1);
- if(trig1){
- for(list_iterator<Shape*> it2 = l2.begin(); it2 != l2.end(); it2++){
- Triangle* trig = dynamic_cast<Triangle*>(*it2);
- l1.insert(it1,*it2);
- l2.erase(it2);
- break;
- }
- }
- if(trap1){
- for(list_iterator<Shape*> it2 = l2.begin(); it2 != l2.end(); it2++){
- Trap* trap2 = dynamic_cast<Trap*>(*it2);
- l1.insert(it1,*it2);
- l2.erase(it2);
- break;
- }
- }
- if(pent1){
- for(list_iterator<Shape*> it2 = l2.begin(); it2 != l2.end(); it2++){
- RegularPentagon* pent2 = dynamic_cast<RegularPentagon*>(*it2);
- l1.insert(it1,*it2);
- l2.erase(it2);
- break;
- }
- }
- std::cout<<std::endl;
- }
- for(list_iterator<Shape*> it = l1.begin(); it != l1.end(); it++){
- Triangle* trig = dynamic_cast<Triangle*>(*it);
- Trap* trap = dynamic_cast<Trap*>(*it);
- RegularPentagon* pent = dynamic_cast<RegularPentagon*>(*it);
- if(trig){
- std::cout<< *trig<<std::endl;
- } if(trap){
- std::cout<< *trap<<std::endl;
- } if(pent){
- std::cout<< *pent<<std::endl;
- }
- std::cout<<std::endl;
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement