Sdílet prostřednictvím


map::emplace_hint

Vloží prvek vyrobeno na místě (jsou prováděny žádné operace kopírování nebo přesun), naznačuje umístění.

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

Parametry

Parametr

Popis

args

Argumenty předány vytvořit prvek, který chcete vložit do mapy mapy již obsahuje tento prvek nebo obecněji, pokud jej již obsahuje prvek, jehož klíč ekvivalentně objednané.

where

Místo zahájení vyhledání správného bodu vložení. (Je-li bezprostředně předchází tomuto bodu where, vložení může dojít včas amortizovaný stálé místo logaritmické času.)

Vrácená hodnota

Iterace nově vloženého prvku.

Pokud vložení se nezdařilo, protože prvek již existuje, vrátí iterace na existující prvek s klíčem.

Poznámky

Touto funkcí nejsou zneplatněny žádné iterátory nebo odkazy.

Pokud je během umístění vyvolána výjimka, není stav kontejneru změněn.

Objekt value_type prvku je objekt pair, takže hodnota prvku bude seřazený pár s první komponentou rovnající se hodnotě klíče a druhou komponentou rovnající se datové hodnotě prvku.

Příklad

// map_emplace.cpp
// compile with: /EHsc
#include <map>
#include <string>
#include <iostream>

using namespace std;

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

    for (const auto& p : m) {
        cout << "(" << p.first <<  "," << p.second << ") ";
    }

    cout << endl;
}

int main()
{
    map<string, string> m1;

    // Emplace some test data
    m1.emplace("Anna", "Accounting");
    m1.emplace("Bob", "Accounting");
    m1.emplace("Carmine", "Engineering");

    cout << "map starting data: ";
    print(m1);
    cout << endl;

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

    cout << "map modified, now contains ";
    print(m1);
    cout << endl;
}

Výsledek

map starting data: 3 elements:
(Anna,Accounting) (Bob,Accounting) (Carmine,Engineering)

map modified, now contains 4 elements:
(Anna,Accounting) (Bob,Accounting) (Carmine,Engineering) (Doug,Engineering)

Požadavky

Hlavička: <map>

Obor názvů: std

Viz také

Referenční dokumentace

<map>

map – třída

Standardní knihovna šablon