la façon la plus rapide pour convertir un std::vector pour un autre std::vector

Quel est le moyen le plus rapide (si il y a un autre) pour convertir un std::vector d'un type à l'autre (avec l'idée de gagner de la place)? Par exemple:

std::vector<unsigned short> ----> std::vector<bool> 

de toute évidence, nous supposons que le premier vecteur ne contient que des 0 et des 1. La copie de l'élément par élément est très inefficace dans le cas d'un très grand vecteur.

Question conditionnelle:
Si vous pensez qu'il n'y a aucun moyen de le faire plus rapidement, est-il un complexe de type de données qui permet la conversion rapide d'un type de données à un autre?

L'OP veut économiser de la mémoire. std::vector<bool> est spécialisé pour être efficace en terme de mémoire.
R. Martinho Fernandes: Vous l'avez!!! Je veux de la magie, unfortainatly std::do_magic() ne semble pas exister.
vector<bool> est une catastrophe. Même STL auteurs admettre que c'était une erreur.

OriginalL'auteur inf.ig.sh | 2011-10-26