Deque::front() и deque::back() в C++ STL

Опубликовано: 15 Сентября, 2022

Очереди Deque или Double Ended представляют собой контейнеры последовательности с функцией расширения и сжатия на обоих концах. Они аналогичны векторам, но более эффективны при вставке и удалении элементов в конце, а также в начале. В отличие от векторов, в двухсторонней очереди не может быть гарантировано непрерывное выделение памяти.

дека:: фронт ()

front() используется для ссылки на первый элемент контейнера deque. Эту функцию можно использовать для получения первого элемента очереди. Это встроенная функция из стандартной библиотеки шаблонов C++ (STL). Эта функция принадлежит заголовочному файлу <deque> .

Синтаксис:

dequename.front()

Возвращает: Прямая ссылка на первый элемент контейнера deque.

Примеры:

Input  :  mydeque = 1, 2, 3
          mydeque.front();
Output :  1

Input  :  mydeque = 3, 4, 1, 7, 3
          mydeque.front();
Output :  3

Ошибки и исключения:

  1. Если контейнер deque пуст, это приводит к неопределенному поведению.
  2. У него нет гарантии исключения исключения, если двухсторонняя очередь не пуста.

Временная сложность: O(1)

Вспомогательное пространство: O(1)

очередь :: назад ()

Функция back() используется для ссылки на последний элемент контейнера deque. Эту функцию можно использовать для извлечения первого элемента из конца двухсторонней очереди. Эту функцию можно использовать для получения первого элемента очереди. Это встроенная функция из стандартной библиотеки шаблонов C++ (STL). Эта функция принадлежит заголовочному файлу <deque> .

Синтаксис:

dequename.back()

Возвращает: Прямая ссылка на последний элемент контейнера deque.

Примеры:

Input  :  mydeque = 1, 2, 3
          mydeque.back();
Output :  3

Input  :  mydeque = 3, 4, 1, 7, 3
          mydeque.back();
Output :  3

Ошибки и исключения:

  1. Если контейнер deque пуст, это приводит к неопределенному поведению.
  2. У него нет гарантии исключения исключения, если двухсторонняя очередь не пуста.

Временная сложность: O(1)

Вспомогательное пространство: O(1)

Приложение: deque::front() и deque::back()

Учитывая пустую очередь целых чисел, добавьте числа в очередь, а затем выведите разницу между первым и последним элементом.

Input  : 1, 2, 3, 4, 5, 6, 7, 8
Output : 7

( Пояснение : последний элемент равен 8, первый элемент равен 1, разница будет равна 7)

Алгоритм:
1. Добавьте числа в очередь, используя функция push_back() .
2. Сравните первый и последний элемент.
3. Если первый элемент больше, вычтите из него последний элемент и распечатайте его.
4. В противном случае вычтите первый элемент из последнего элемента и напечатайте его.

Временная сложность: O(1)

Вспомогательное пространство: O(1)

Посмотрим отличия в табличной форме -:

Дека:: фронт() очередь :: назад ()
1. Он используется для возврата ссылки на первый элемент в контейнере deque. Он используется для возврата ссылки на последний элемент в контейнере.
2.

Его синтаксис -:

ссылочный фронт();

Его синтаксис -:

ссылка назад();

3. Он не принимает никаких параметров. Он не принимает никаких параметров.
4. Его сложность постоянна. Его сложность постоянна.
5. Его итераторная действительность не меняется. Его итераторная действительность не меняется.

Пожалуйста, пишите комментарии, если вы обнаружите что-то неправильное, или вы хотите поделиться дополнительной информацией по теме, обсуждаемой выше.

C++