Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <list>
- using namespace std;
- template <typename T>
- class __list {
- private:
- list<T> mylist;
- public:
- __list(list<T> mylist_) {
- for (auto i = mylist_.begin();i != mylist_.end();i++) {
- mylist.push_back(*i);
- }
- }
- void print() {
- for (auto i = mylist.begin();i != mylist.end();++i) {
- cout << *i << endl;
- }
- }
- T &operator [](int index) {
- auto it = mylist.begin();
- for (int i = 0;i < index;i++) {
- it++;
- }
- return *it;
- }
- T operator +(list<T> mylist_) {
- for (auto i = mylist_.begin();i != mylist_.end();++i) {
- mylist.push_back(*i);
- }
- }
- T operator !=(list<T> mylist_) {
- int counter = 0;
- auto iter = mylist.begin();
- if (mylist_.size() == mylist.size()) {
- for (auto i = mylist_.begin();i != mylist_.end();++i) {
- if (*iter == *i) {
- counter++;
- }
- }
- if (counter == mylist.size())
- return false;
- else
- return true;
- }
- else
- return true;
- }
- };
- int main() {
- list <int> lists{ 1, 2, 3, 45, 5 };
- list <int> r2{ 1,2,3,5,8 };
- __list <int> r1(lists);
- r1.print();
- cout << "Вызов по индексу: " << endl;
- cout << r1[0] << endl;
- r1 + r2;
- cout << "Объединение двух списков: " << endl;
- r1.print();
- if (r1 != r2)
- cout << "r1!=r2" << endl;
- else
- cout << "r1==r2" << endl;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement