Рубрики

deque :: emplace_front () и deque :: emplace_back () в C ++ STL

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

Deque :: emplace_front ()

Эта функция используется для вставки нового элемента в контейнер deque, новый элемент добавляется в начало deque.
Синтаксис:

dequename.emplace_front(value)
Parameters :
The element to be inserted into the deque
is passed as the parameter.
Result :
The parameter is added to the
deque at the beginning.

Примеры:

Input  : mydeque{1, 2, 3, 4, 5};
         mydeque.emplace_front(6);
Output : mydeque = 6, 1, 2, 3, 4, 5

Input  : mydeque{};
         mydeque.emplace_front(4);
Output : mydeque = 4

Ошибки и исключения
1. Он имеет сильную гарантию исключения, поэтому никакие изменения не вносятся, если выдается исключение.
2. Параметр должен быть того же типа, что и контейнер, в противном случае выдается ошибка.

// INTEGER DEQUE ПРИМЕР
// Программа CPP для иллюстрации
// Реализация функции emplace_front ()
#include <deque>
#include <iostream>

using namespace std;

  

int main()

{

    deque<int> mydeque;

    mydeque.emplace_front(1);

    mydeque.emplace_front(2);

    mydeque.emplace_front(3);

    mydeque.emplace_front(4);

    mydeque.emplace_front(5);

    mydeque.emplace_front(6);

  

    // deque становится 6, 5, 4, 3, 2, 1

  

    // печать бланка

    for (auto it = mydeque.begin();

         it != mydeque.end(); ++it)

        cout << ' ' << *it;

  

    return 0;

}

Выход:

6 5 4 3 2 1

// Пример STRING DEQUE
// Программа CPP для иллюстрации
// Реализация функции emplace_front ()
#include <deque>
#include <iostream>
#include <string>

using namespace std;

  

int main()

{

    deque<string> mydeque;

    mydeque.emplace_front("portal");

    mydeque.emplace_front("science");

    mydeque.emplace_front("computer");

    mydeque.emplace_front("a");

    mydeque.emplace_front("is");

    mydeque.emplace_front("GEEKSFORGEEKS");

  

    // deque становится GEEKSFORGEEKS, есть,

    // компьютер, наука, портал

  

    // печать бланка

    for (auto it = mydeque.begin();

                  it != mydeque.end(); ++it)

        cout << ' ' << *it;

  

    return 0;

}

Выход:

GEEKSFORGEEKS is a computer science portal

Сложность времени: O (1)

заявка
Получив пустую деку, добавьте к ней целые числа с помощью функции emplace_front (), а затем рассчитайте ее размер, не используя функцию size ().

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

Алгоритм
1. Добавить элементы в деку с помощью функции emplace_front ()
2. Проверьте, пуста ли очередь, если нет, увеличьте переменную счетчика, инициализированную как 0, и вытолкните задний элемент.
3. Повторяйте этот шаг до тех пор, пока деко не опустеет.
4. Напечатайте окончательное значение переменной.

// Программа CPP для иллюстрации
// Применение функции emplace_front ()
#include <deque>
#include <iostream>

using namespace std;

  

int main()

{

    // объявление переменной

    int count = 0;

  

    // декларация deque

    deque<int> mydeque;

  

    // добавляем элементы в deque

    mydeque.emplace_front(1);

    mydeque.emplace_front(2);

    mydeque.emplace_front(3);

    mydeque.emplace_front(4);

    mydeque.emplace_front(5);

    mydeque.emplace_front(6);

  

    // подсчитываем элементы в deque

    while (!mydeque.empty()) {

        count++;

        mydeque.pop_back();

    }

    cout << count;

    return 0;

}

Выход :

6

Deque :: emplace_back ()

Эта функция используется для вставки нового элемента в контейнер deque, новый элемент добавляется в конец deque.
Синтаксис:

dequename.emplace_back(value)
Parameters :
The element to be inserted into the deque
is passed as the parameter.
Result :
The parameter is added to the
deque at the end.

Примеры:

Input  : mydeque{1, 2, 3, 4, 5};
         mydeque.emplace_back(6);
Output : mydeque = 1, 2, 3, 4, 5, 6

Input  : mydeque{};
         mydeque.emplace_back(4);
Output : mydeque = 4

Ошибки и исключения
1. Он имеет сильную гарантию исключения, поэтому никакие изменения не вносятся, если выдается исключение.
2. Параметр должен быть того же типа, что и контейнер, в противном случае выдается ошибка.

// INTEGER DEQUE ПРИМЕР
// Программа CPP для иллюстрации
// Реализация функции emplace_back ()
#include <deque>
#include <iostream>

using namespace std;

  

int main()

{

    deque<int> mydeque;

    mydeque.emplace_back(1);

    mydeque.emplace_back(2);

    mydeque.emplace_back(3);

    mydeque.emplace_back(4);

    mydeque.emplace_back(5);

    mydeque.emplace_back(6);

    // deque становится 1, 2, 3, 4, 5, 6

  

    // печать бланка

    for (auto it = mydeque.begin();

             it != mydeque.end(); ++it)

        cout << ' ' << *it;

  

    return 0;

}

Выход:

1 2 3 4 5 6

// Пример STRING DEQUE
// Программа CPP для иллюстрации
// Реализация функции emplace_back ()
#include <deque>
#include <iostream>

using namespace std;

  

int main()

{

    deque<string> mydeque;

    mydeque.emplace_back("Hi");

    mydeque.emplace_back("this");

    mydeque.emplace_back("is");

    mydeque.emplace_back("geeksforgeeks");

    // deque становится Привет, это geeksforgeeks

  

    // печать бланка

    for (auto it = mydeque.begin();

                it != mydeque.end(); ++it)

        cout << ' ' << *it;

  

    return 0;

}

Выход:

Hi this is geeksforgeeks

Сложность времени: O (1)
заявка
Получив пустую деку, добавьте к ней целые числа с помощью функции emplace_front (), а затем вычислите сумму элементов.

Input  : 4, 5, 9, 2, 6
Output : 26

Алгоритм
1. Добавить элементы в деку с помощью функции emplace_back ()
2. Проверьте, пуста ли очередь, если нет, добавьте значение back к переменной sum, инициализированной как 0, и вытолкните элемент back.
3. Повторяйте этот шаг до тех пор, пока деко не опустеет.
4. Напечатайте окончательное значение переменной.

// Программа CPP для иллюстрации
// Применение функции emplace_back ()
#include <deque>
#include <iostream>

using namespace std;

  

int main()

{

    // объявление переменной

    int sum = 0;

  

    // декларация deque

    deque<int> mydeque;

  

    // добавляем элементы в deque

    mydeque.emplace_back(4);

    mydeque.emplace_back(5);

    mydeque.emplace_back(9);

    mydeque.emplace_back(2);

    mydeque.emplace_back(6);

  

    // подсчитываем сумму элементов в deque

    while (!mydeque.empty()) {

        sum = sum + mydeque.back();

        mydeque.pop_back();

    }

    cout << sum;

    return 0;

}

Выход :

6

Рекомендуемые посты:

deque :: emplace_front () и deque :: emplace_back () в C ++ STL

0.00 (0%) 0 votes