// Доп.задачи 4 // #include "stdafx.h" #include #include #include #include using namespace std; // Задача 2 class rational { int num, den; public: rational(int num_ = 0, int den_ = 1) : num(num_), den(den_) {} friend ostream& operator<<(ostream& output, const rational& r); }; ostream& operator<<(ostream& output, const rational& r) { output << r.num; if (r.den != 1) output << "/" << r.den; return output; } // Задача 4 bool check_same1(const list& l) { list::const_iterator p,q; for (p = l.begin(); p != l.end(); p++) { for (q = p, q++; q != l.end(); q++) { if (*p == *q) return true; } } return false; } // Задача 5 bool check_same2(const list& l) { set s; list::const_iterator p; for (p = l.begin(); p != l.end(); p++) { if (s.find(*p) != s.end()) // Число уже было? return true; s.insert(*p); } return false; } // Задача 6 class queue { deque d; public: void push(int x) { d.push_back(x); } int pop() { int result = *d.begin(); // Или int result = d.front(); d.pop_front(); return result; } }; int main() { // Пример вызова для задачи 2 rational r1(2, 3); rational r2(7, 1); cout << r1 << " " << r2 << "\n"; // Примеры вызова для задач 4 и 5 list lst; lst.push_back(3); lst.push_back(7); lst.push_back(11); lst.push_back(7); cout << check_same1(lst) << "\n"; cout << check_same2(lst) << "\n"; // Пример вызова для задачи 6 queue q; q.push(3); q.push(7); q.push(11); cout << q.pop() << "\n"; cout << q.pop() << "\n"; return 0; }