Объектно-ориентированное программирование на c++


Download 56.06 Kb.
bet6/8
Sana18.06.2023
Hajmi56.06 Kb.
#1592783
TuriЛекция
1   2   3   4   5   6   7   8

protected:

  • protected:
  • Container c;
  • public:
  • bool empty() const {return c.empty();}
  • size_type size() const {return c.size();}
  • value_type& front() {return c.front();}
  • const value_type& front() const {return c.front();}
  • value_type& back() {return c.back();}
  • const value_type& back() const {return c.back();}
  • void push(const value_type& х) {с.push_back(х);}
  • void pop() {с.pop_front();}
  • }; // class queue
  •  
  • template
  • bool operator==(const queue& х, const queue& y)
  • {return х.с == у.с;}
  • template
  • bool operator<(const queue& х, const queue& y)
  • {return х.с < у.с;}

Пример

  • #include
  • #include
  • #include
  • using namespace std;
  • int main(int argc, char* argv[ ]) {
  • setlocale(LC_ALL, "rus");
  • queue st;
  • queue > vst( list({ "строка 1", "строка 2" }) );
  • vst.push("последняя строка");
  • while (!vst.empty()) {
  • cout << vst.front() << " : в очереди строк " << vst.size() << " ";
  • vst.pop();
  • }
  • cout << "очередь " << (vst.empty() ? "" : "не ") << "пуста" << endl;
  • }
  • Вывод: строка 1 : в очереди строк 3 строка 2 : в очереди строк 2 последняя строка : в очереди строк 1 очередь пуста

Пример

  • #include
  • #include
  • #include
  • #include
  • int main () {
  • std::deque mydeck (3,100); // deque с 3 элементами
  • std::list mylist (2,200); // список с 2 элементами
  • std::queue first; // пустая queue
  • std::queue second (mydeck); // инициализируется копией deque
  • // пустая очередь со списком в
  • std::queue > third; // качестве базового контейнера
  • std::queue > fourth (mylist);
  • std::cout << "size of first: " << first.size() << '\n';
  • std::cout << "size of second: " << second.size() << '\n';
  • std::cout << "size of third: " << third.size() << '\n';
  • std::cout << "size of fourth: " << fourth.size() << '\n';
  • return 0; }
  • Output:
  • size of first: 0
  • size of second: 3
  • size of third: 0
  • size of fourth: 2

push и pop

  • push вставляет новый элемент в конце очереди, после его текущего последнего элемента. Содержимое этого нового элемента инициализируется в val.Эта функция-член эффективно вызывает функцию-член push_back базового объекта контейнера. В следующем примере push используется для добавления новых элементов в очередь, которые затем выскакивают в том же порядке.
  • pop удаляет следующий элемент в очереди, эффективно уменьшая его размер на единицу.
  • Удаленный элемент является "самым старым" элементом в очереди, значение которого можно получить, вызвав элемент queue::front.
  • pop вызывает деструктор удаляемого элемента.
  • Эта функция-член вызывает функцию-член pop_front базового объекта контейнера.

Пример

  • #include // std::cin, std::cout
  • #include // std::queue
  • int main () {
  • std::queue myqueue;
  • int myint;
  • std::cout << "Please enter some integers (enter 0 to end):\n";
  • do {
  • std::cin >> myint;
  • myqueue.push (myint);
  • } while (myint);
  • std::cout << "myqueue contains: ";
  • while (!myqueue.empty()) {
  • std::cout << ' ' << myqueue.front();
  • myqueue.pop();
  • }
  • std::cout << '\n';
  • return 0;
  • }

Очередь с приоритетами (priority_queue )

  • Любая последовательность, с итератором произвольного доступа и поддерживающая операции front, push_back и pop_front, может использоваться для адаптера priority_queue. В частности, могут использоваться vector и deque.
  • template >
  • class priority_queue {
  • public:
  • typedef Container::value_type value_type;
  • typedef Container::size_type size_type;
  • protected:
  • Container c;
  • Compare comp;

Download 56.06 Kb.

Do'stlaringiz bilan baham:
1   2   3   4   5   6   7   8




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling