Freigeben über


hash_map::insert

Hinweis

Diese API ist veraltet.Die Alternative ist unordered_map-Klasse.

Fügt ein Element oder einen Bereich von Elementen in ein hash_map ein.

pair <iterator, bool> insert(
    const value_type& _Val
);
iterator insert(
    const_iterator _Where,
    const value_type& _Val
);
template<class InputIterator>
    void insert(
        InputIterator _First,
        InputIterator _Last
);
template<class ValTy>
    pair <iterator, bool> insert(
        ValTy&& _Val
);
template<class ValTy>
    iterator insert(
        const_iterator _Where,
        ValTy&& _Val
);

Parameter

Parameter

Beschreibung

_Val

Der Wert eines in das hash_map einzufügende Elements, es sei denn, das hash_map bereits dieses Element enthält (oder, im Allgemeinen, ein Element, dessen Schlüssel gleichwertig sortiert wird).

_Where

Ein Hinweis bezüglich des Platzes, an dem mit der Suche nach dem richtigen Einfügepunkt begonnen wird.

_First

Die Position des ersten Elements, einem hash_map kopiert werden.

_Last

Die Position direkt über den letzten Eintrag hinaus, einem hash_map kopiert werden.

Rückgabewert

Die erste insert-Memberfunktion gibt einem Paar zurück, dessen Komponentenrückgaben bool ausrichten, wenn eine Einfügung und false vorgenommen wurde, wenn das hash_map bereits ein Element enthält, dessen Schlüssel einen entsprechenden Wert in der Reihenfolge verfügt und dessen Iteratorkomponente der Adresse zurückgibt, in der ein neues Element eingefügt wurde oder, wo das Element bereits gefunden wurde.

Um auf die Iteratorkomponente eines Paares pr zuzugreifen DataGridView-Elements von dieser Memberfunktion, verwenden pr zurück.erstens und es möglich, mit * (pr.erstens). Um auf die bool Komponente eines Paares pr zuzugreifen DataGridView-Elements von dieser Memberfunktion, verwenden pr zurück.zweitens und es möglich, mit * (pr.zweitens).

Die zweite insert-Memberfunktion, die Hinweisversion, gibt ein Iterator zurück, auf der der Speicherort verweist, an der das neue Element in das hash_map eingefügt wurde.

Die letzten zwei insert-Memberfunktionen verhalten sich jedoch identisch ersten zwei, außer dass sie verschieben Konstrukt im eingefügten Wert.

Hinweise

Der value_type eines Elements wird paarweise angegeben, sodass der Wert eines Elements ein geordnetes Paar ist, bei dem die erste Komponente gleich dem Schlüsselwert und die zweite Komponente gleich dem Datenwert des Elements ist.

Einfügung kann in amortisierter konstanter Zeit anstelle von logarithmischer Zeit für die Hinweisversion von "insert" erfolgen, wenn die Einfügemarke _Where direkt folgt.

Die dritte Memberfunktion fügt die Sequenz von Elementwerten in ein hash_map ein, entsprechend jedem Element, das durch einen Iterator im Bereich [First, Last] eines bestimmten Satzes adressiert wird.

Beispiel

// hash_map_insert.cpp
// compile with: /EHsc
#include<hash_map>
#include<iostream>
#include <string>

int main()
{
    using namespace std;
    using namespace stdext;
    hash_map<int, int>::iterator hm1_pIter, hm2_pIter;

    hash_map<int, int> hm1, hm2;
    typedef pair<int, int> Int_Pair;

    hm1.insert(Int_Pair(1, 10));
    hm1.insert(Int_Pair(2, 20));
    hm1.insert(Int_Pair(3, 30));
    hm1.insert(Int_Pair(4, 40));

    cout<< "The original elements (Key => Value) of hm1 are:";
    for (hm1_pIter = hm1.begin(); hm1_pIter != hm1.end(); hm1_pIter++)
        cout << endl << " " << hm1_pIter -> first << " => "
             << hm1_pIter->second;
    cout << endl;

    pair< hash_map<int,int>::iterator, bool > pr;
    pr = hm1.insert(Int_Pair(1, 10));

    if (pr.second == true)
    {
        cout<< "The element 10 was inserted in hm1 successfully."
            << endl;
    }
    else
    {
        cout<< "The element 10 already exists in hm1\n with a key value of"
            << "((pr.first) -> first)= "<<(pr.first)-> first
            << "."<< endl;
    }

    // The hint version of insert
    hm1.insert(--hm1.end(), Int_Pair(5, 50));

    cout<< "After the insertions, the elements of hm1 are:";
    for (hm1_pIter = hm1.begin(); hm1_pIter != hm1.end(); hm1_pIter++)
        cout << endl << " " << hm1_pIter -> first << " => "
             << hm1_pIter->second;
    cout << endl;

    hm2.insert(Int_Pair(10, 100));

    // The templatized version inserting a range
    hm2.insert( ++hm1.begin(), --hm1.end() );

    cout<< "After the insertions, the elements of hm2 are:";
    for (hm2_pIter = hm2.begin(); hm2_pIter != hm2.end(); hm2_pIter++)
        cout << endl << " " << hm2_pIter -> first << " => "
             << hm2_pIter->second;
    cout << endl;

    // The templatized versions move constructing elements
    hash_map<int, string> hm3, hm4;
    pair<int, string> is1(1, "a"), is2(2, "b");

    hm3.insert(move(is1));
    cout << "After the move insertion, hm3 contains:" << endl
      << " " << hm3.begin()->first
      << " => " << hm3.begin()->second
      << endl;

    hm4.insert(hm4.begin(), move(is2));
    cout << "After the move insertion, hm4 contains:" << endl
      << " " << hm4.begin()->first
      << " => " << hm4.begin()->second
      << endl;
}
  

Anforderungen

Header: <hash_map>

Namespace: stdext

Siehe auch

Referenz

hash_map-Klasse

Standardvorlagenbibliothek