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