Compartilhar via


Funções <set>

swap (set)

Troca os elementos de dois conjuntos.

template <class Key, class Traits, class Allocator>
void swap(set<Key, Traits, Allocator>& left, set<Key, Traits, Allocator>& right);

Parâmetros

direita
O set que fornece os elementos a serem trocados ou o set cujos elementos devem ser trocados pelos que estão no set left.

esquerda
O set cujos elementos serão trocados pelos do set right.

Comentários

A função de modelo é um algoritmo especializado na classe de contêiner set para executar a função de membro left.swap(right). Trata-se de uma instância da ordenação parcial de modelos de função pelo compilador. Quando as funções de modelo são sobrecarregadas de forma que a correspondência do modelo com a chamada de função não é exclusiva, o compilador seleciona a versão mais especializada do modelo de função. A versão geral da função de modelo

template<classT>void swap( T&, T&)

na classe de algoritmo funciona por atribuição e é uma operação lenta. A versão especializada em cada contêiner é muito mais rápida, uma vez que ela pode funcionar com a representação interna da classe de contêiner.

Exemplo

Veja o exemplo de código da classe de membro set::swap para obter um exemplo que usa a versão de modelo de swap.

swap (multiset)

Troca os elementos de dois multisets.

template <class Key, class Traits, class Allocator>
void swap(multiset<Key, Traits, Allocator>& left, multiset<Key, Traits, Allocator>& right);

Parâmetros

direita
O multiset que fornece os elementos que serão trocados ou o multiset cujos elementos deverão ser trocados com aqueles do multiset left.

esquerda
O multiset cujos elementos deverão ser trocados com aqueles do multiset right.

Comentários

A função de modelo é um algoritmo especializado na classe de contêiner multiset para executar a função de membro left.swap(right). Trata-se de uma instância da ordenação parcial de modelos de função pelo compilador. Quando as funções de modelo são sobrecarregadas de forma que a correspondência do modelo com a chamada de função não é exclusiva, o compilador seleciona a versão mais especializada do modelo de função. A versão geral da função de modelo

template<classT>void swap( T&, T&)

na classe de algoritmo funciona por atribuição e é uma operação lenta. A versão especializada em cada contêiner é muito mais rápida, uma vez que ela pode funcionar com a representação interna da classe de contêiner.

Exemplo

Veja o exemplo de código da classe de membro multiset::swap para obter um exemplo que usa a versão de modelo de swap.