Поделиться через


set::emplace_hint

Вставляет элемент построен на месте (отсутствует операции копирования или перемещения), не выполняются с подсказками размещения.

template<class... Args>
   iterator emplace_hint(
      const_iterator where,
      Args&&... args);

Параметры

Параметр

Описание

args

Аргументы переадресованные для построения элемента, который необходимо вставить в набор, если набор уже не содержит этот элемент, или в общем случае, если он еще не содержит элемент, значение которого соответствующе приказано.

where

Место, чтобы начать поиск нужной точки вставки. (Если эта точка непосредственно предшествующего where, вставка может произойти в амортизированном постоянно времени вместо логарифмического времени).

Возвращаемое значение

Итератор во вновь изменять элемент.

Если вставка завершился ошибкой, поскольку элемент уже существует, возвращает итератор с существующим элементом.

Заметки

Нет итераторы или ссылки является действительным этой функцией.

Во время emplacement, если исключение, не изменяется состояние контейнера.

Пример

// set_emplace.cpp
// compile with: /EHsc
#include <set>
#include <string>
#include <iostream>

using namespace std;

template <typename S> void print(const S& s) {
    cout << s.size() << " elements: " << endl;

    for (const auto& p : s) {
        cout << "(" << p <<  ") ";
    }

    cout << endl;
}

int main()
{
    set<string> s1;

    // Emplace some test data
    s1.emplace("Anna");
    s1.emplace("Bob");
    s1.emplace("Carmine");

    cout << "set starting data: ";
    print(s1);
    cout << endl;

    // Emplace with hint
    // s1.end() should be the "next" element after this emplacement
    s1.emplace_hint(s1.end(), "Doug");

    cout << "set modified, now contains ";
    print(s1);
    cout << endl;
}

Output

set starting data: 3 elements:
(Anna) (Bob) (Carmine)

set modified, now contains 4 elements:
(Anna) (Bob) (Carmine) (Doug)

Требования

Заголовок:<set>

Пространство имен: std

См. также

Ссылки

<set>

Класс set

Библиотека стандартных шаблонов