Advertisement
Guest User

Untitled

a guest
May 21st, 2019
73
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.75 KB | None | 0 0
  1. /*
  2. vector<Shape*> v(0);
  3. v.push_back(new Triangle ({0, 0}, {2, 2}, {-2, -2}));
  4. v.push_back(new RegularPentagon ({0, 0}, 2));
  5. v.push_back(new Trap ({0, 2}, {2, 2}, {-2, -2}, {4, -2}));
  6.  
  7. sort(v);
  8. */
  9.  
  10. list<Shape*> l1;
  11.  
  12. l1.push_back(new Triangle ({0, 0}, {2, 2}, {-2, -2}));
  13. l1.push_back(new RegularPentagon ({0, 0}, 2));
  14. l1.push_back(new Trap ({0, 2}, {2, 2}, {-2, -2}, {4, -2}));
  15.  
  16. for(list_iterator<Shape*> it = l1.begin(); it != l1.end(); it++){
  17. Triangle* trig = dynamic_cast<Triangle*>(*it);
  18. Trap* trap = dynamic_cast<Trap*>(*it);
  19. RegularPentagon* pent = dynamic_cast<RegularPentagon*>(*it);
  20. if(trig){
  21. std::cout<< *trig<<std::endl;
  22. } if(trap){
  23. std::cout<< *trap<<std::endl;
  24. } if(pent){
  25. std::cout<< *pent<<std::endl;
  26. }
  27. std::cout<<std::endl;
  28.  
  29. }
  30.  
  31. list<Shape*> l2;
  32.  
  33. l2.push_back(new Trap ({0, 2}, {2, 2}, {-2, -2}, {4, -2}));
  34. l2.push_back(new RegularPentagon ({0, 0}, 2));
  35. l2.push_back(new Triangle ({0, 0}, {2, 2}, {-2, -2}));
  36.  
  37. for(list_iterator<Shape*> it = l2.begin(); it != l2.end(); it++){
  38. Triangle* trig = dynamic_cast<Triangle*>(*it);
  39. Trap* trap = dynamic_cast<Trap*>(*it);
  40. RegularPentagon* pent = dynamic_cast<RegularPentagon*>(*it);
  41. if(trig){
  42. std::cout<< *trig<<std::endl;
  43. } if(trap){
  44. std::cout<< *trap<<std::endl;
  45. } if(pent){
  46. std::cout<< *pent<<std::endl;
  47. }
  48. std::cout<<std::endl;
  49. }
  50.  
  51. for(list_iterator<Shape*> it1 = l1.begin(); it1 != l1.end(); it1++){
  52. Triangle* trig1 = dynamic_cast<Triangle*>(*it1);
  53. Trap* trap1 = dynamic_cast<Trap*>(*it1);
  54. RegularPentagon* pent1 = dynamic_cast<RegularPentagon*>(*it1);
  55.  
  56. if(trig1){
  57. for(list_iterator<Shape*> it2 = l2.begin(); it2 != l2.end(); it2++){
  58. Triangle* trig = dynamic_cast<Triangle*>(*it2);
  59. l1.insert(it1,*it2);
  60. l2.erase(it2);
  61. break;
  62. }
  63. }
  64. if(trap1){
  65. for(list_iterator<Shape*> it2 = l2.begin(); it2 != l2.end(); it2++){
  66. Trap* trap2 = dynamic_cast<Trap*>(*it2);
  67. l1.insert(it1,*it2);
  68. l2.erase(it2);
  69. break;
  70. }
  71. }
  72. if(pent1){
  73. for(list_iterator<Shape*> it2 = l2.begin(); it2 != l2.end(); it2++){
  74. RegularPentagon* pent2 = dynamic_cast<RegularPentagon*>(*it2);
  75. l1.insert(it1,*it2);
  76. l2.erase(it2);
  77. break;
  78. }
  79. }
  80. std::cout<<std::endl;
  81. }
  82.  
  83. for(list_iterator<Shape*> it = l1.begin(); it != l1.end(); it++){
  84. Triangle* trig = dynamic_cast<Triangle*>(*it);
  85. Trap* trap = dynamic_cast<Trap*>(*it);
  86. RegularPentagon* pent = dynamic_cast<RegularPentagon*>(*it);
  87. if(trig){
  88. std::cout<< *trig<<std::endl;
  89. } if(trap){
  90. std::cout<< *trap<<std::endl;
  91. } if(pent){
  92. std::cout<< *pent<<std::endl;
  93. }
  94. std::cout<<std::endl;
  95.  
  96. }
  97.  
  98. return 0;
  99. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement