Compartilhar via


unordered_set::insert

Insere um elemento ou um intervalo de elementos em um unordered_set.

// (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_set, 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_set 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_set 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_set 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 é uma typedef que pertence ao contêiner e, para o conjunto, unordered_set<V>::value_type é do tipo const V.

A função do membro de intervalo (5) insere a sequência de valores de elemento em um unordered_set que corresponde a cada elemento tratado 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 s.insert(v.begin(), v.end()); tenta inserir todos os elementos de v em s. 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 em um unordered_set.

Para inserir um elemento construído no lugar (ou seja, sem a realização de operação de cópia ou movimentação), consulte set::emplace e set::emplace_hint.

Para obter um exemplo de código, consulte set::insert.

Requisitos

Cabeçalho: <unordered_set>

Namespace: std

Consulte também

Referência

<unordered_set>

Classe unordered_set

Biblioteca de Modelos Padrão