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
.