Advertisement
evcamels

lab-3

Jan 19th, 2021
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.65 KB | None | 0 0
  1. #include <iostream>
  2. #include <list>
  3. using namespace std;
  4. template <typename T>
  5. class __list {
  6. private:
  7. list<T> mylist;
  8. public:
  9. __list(list<T> mylist_) {
  10. for (auto i = mylist_.begin();i != mylist_.end();i++) {
  11. mylist.push_back(*i);
  12. }
  13. }
  14. void print() {
  15. for (auto i = mylist.begin();i != mylist.end();++i) {
  16. cout << *i << endl;
  17. }
  18. }
  19. T &operator [](int index) {
  20. auto it = mylist.begin();
  21. for (int i = 0;i < index;i++) {
  22. it++;
  23. }
  24. return *it;
  25. }
  26. T operator +(list<T> mylist_) {
  27. for (auto i = mylist_.begin();i != mylist_.end();++i) {
  28. mylist.push_back(*i);
  29. }
  30. }
  31. T operator !=(list<T> mylist_) {
  32. int counter = 0;
  33. auto iter = mylist.begin();
  34. if (mylist_.size() == mylist.size()) {
  35. for (auto i = mylist_.begin();i != mylist_.end();++i) {
  36. if (*iter == *i) {
  37. counter++;
  38. }
  39. }
  40. if (counter == mylist.size())
  41. return false;
  42. else
  43. return true;
  44. }
  45. else
  46. return true;
  47. }
  48. };
  49. int main() {
  50. list <int> lists{ 1, 2, 3, 45, 5 };
  51. list <int> r2{ 1,2,3,5,8 };
  52. __list <int> r1(lists);
  53. r1.print();
  54. cout << "Вызов по индексу: " << endl;
  55. cout << r1[0] << endl;
  56. r1 + r2;
  57. cout << "Объединение двух списков: " << endl;
  58. r1.print();
  59. if (r1 != r2)
  60. cout << "r1!=r2" << endl;
  61. else
  62. cout << "r1==r2" << endl;
  63. return 0;
  64. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement