Advertisement
evcamels

lr-3

Jan 17th, 2021
96
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 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