unordered_map::insert
Insere um elemento ou um intervalo de elementos em um unordered_map.
// (1) single element pair<iterator, bool> insert( const value_type& Val ); // (2) single element, perfect forwarded template<class ValTy> pair<iterator, bool> insert( ValTy&& Val ); // (3) single element with hint iterator insert( const_iterator Where, const value_type& Val ); // (4) single element, perfect forwarded, with hint template<class ValTy> iterator insert( const_iterator Where, ValTy&& Val ); // (5) range template<class InputIterator> void insert( InputIterator First, InputIterator Last ); // (6) initializer list void insert( initializer_list<value_type> IList );
Parâmetros
Parâmetro |
Descrição |
Val |
O valor de um elemento a ser inserido no unordered_map a menos que ele já contenha um elemento cuja chave seja ordenada de maneira equivalente. |
Where |
O local a partir do qual se começa a procurar pelo ponto de inserção correto. |
ValTy |
O parâmetro de modelo que especifica o tipo de argumento que o unordered_map pode usar para construir um elemento de value_type e aperfeiçoar/encaminhar Val como argumento. |
First |
A posição do primeiro elemento a ser copiado. |
Last |
A posição imediatamente após o último elemento a ser copiado. |
InputIterator |
Argumento da função de modelo que atende aos requisitos de um iterador de entrada que aponta para elementos de um tipo que pode ser usado para construir objetos value_type. |
IList |
A initializer_list da qual os elementos serão copiados. |
Valor de retorno
As funções de membro de elemento único, (1) e (2), retornam um par cujo bool componente é verdadeiro se uma inserção tiver sido feita, e falso se o unordered_map já contiver um elemento cuja chave possua um valor equivalente na ordenação. O componente do iterador do par de valores retornados apontará para o elemento recém-inserido, se o componente bool for verdadeiro, ou para o elemento existente, se o componente bool for falso.
As funções do membro de elemento único com dica, (3) e (4), retornam um iterador que aponta para a posição em que o novo elemento foi inserido no unordered_map ou, se um elemento com uma chave equivalente já existir, para o elemento existente.
Comentários
Nenhum iterador, ponteiro ou referência é invalidado por essa função.
Durante a inserção de apenas um elemento, se uma exceção for lançada, mas não ocorrer na função hash do contêiner, o estado do contêiner não é modificado. Se a exceção for lançada na função hash, o resultado é indefinido. Durante a inserção de vários elementos, se uma exceção for lançada, o contêiner será deixado em um estado não especificado, mas válido.
Para acessar o componente do iterador de um pair pr que é retornado pelas funções do membro de elemento único, consulte pr.first; para desreferenciar o iterador dentro do par retornado, use *pr.first, que oferece um elemento. Para acessar o componente bool, use pr.second. Para obter um exemplo, consulte o código de amostra mais adiante neste artigo.
O value_type de um contêiner é um typedef que pertence ao contêiner, e para o mapa, map<K, V>::value_type é pair<const K, V>. O valor de um elemento é um par ordenado no qual o primeiro componente é igual ao valor chave e o segundo componente é igual ao valor dos dados do elemento.
A função do membro do intervalo (5) insere a sequência de valores de elemento em um unordered_map que corresponde a cada elemento abordado por um iterador no intervalo [First, Last); portanto, Last não é inserido. A função de membro do contêiner end() faz referência à posição imediatamente após o último elemento no contêiner; por exemplo, a instrução m.insert(v.begin(), v.end()); tenta inserir todos os elementos de v em m. Apenas elementos com valores únicos no intervalo são inseridos; as duplicatas são ignoradas. Para observar quais elementos são rejeitados, use as versões de elemento único de insert.
A função do membro da lista do inicializador (6) usa um initializer_list para copiar elementos no unordered_map.
Para inserir um elemento construído no lugar (ou seja, sem a realização de operação de cópia ou movimentação), consulte unordered_map::emplace e unordered_map::emplace_hint.
Para obter um exemplo de código, consulte map::insert.
Requisitos
Cabeçalho: <unordered_map>
Namespace: std