Funções <map>
swap (map)
Troca os elementos de dois mapas.
template <class key, class T, class _Pr, class _Alloc>
void swap(
map<Key, Traits, Compare, Alloctor>& left,
map<Key, Traits, Compare, Alloctor>& right);
Parâmetros
direita
O mapa que fornece os elementos a serem trocados ou o mapa cujos elementos devem ser trocados por aqueles que estão no mapa left.
esquerda
O mapa cujos elementos devem ser trocados por aqueles que estão no mapa right.
Comentários
A função de modelo é um algoritmo especializado no mapa de classe de contêiner 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
<classe T>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 função de membro map::swap para obter uma amostra que utiliza a versão de modelo do swap
.
swap (multimap)
Troca os elementos de dois multimaps.
template <class key, class T, class _Pr, class _Alloc>
void swap(
multimap<Key, Traits, Compare, Alloctor>& left,
multimap<Key, Traits, Compare, Alloctor>& right);
Parâmetros
direita
O multimap que fornece os elementos que serão trocados ou o multimap cujos elementos deverão ser trocados com aqueles do multimapa left.
esquerda
O multimapa cujos elementos deverão ser trocados com aqueles do multimapa right.
Comentários
A função de modelo é um algoritmo especializado no mapa de classe de contêiner para executar a função de membro left
swap (right
) no multimapa de classe de contêiner. 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
<classe T>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 função de membro multimap::swap para obter uma amostra que utiliza a versão de modelo do swap
.