Où sont les en-têtes de la norme C++ de la bibliothèque
Je me demande où sur mon système de fichiers-je trouver les en-têtes de la Norme C++ de la bibliothèque. En particulier, je suis à la recherche de la définition du vecteur de modèle. J'ai cherché dans /usr/include/et divers sous-répertoires. J'ai aussi essayé " localiser le vecteur.h' qui soulevait de nombreuses implémentations de vecteurs, mais pas le standard. Ce qui me manque? (La distribution Gentoo)
Contexte: je suis le profilage d'une bibliothèque qui parcourt le vecteur est la plupart du temps et gprof montre que la plupart du temps est passé dans
std::vector<int, std::allocator<int> >::_M_insert_aux(
__gnu_cxx::__normal_iterator<int*, std::vector<
int, std::allocator<int> > >, int const&)
C'est probablement ce qui se passe en interne sur un std::vector::push_back, mais je ne suis pas sûr.
vector
dans le C comprend?OriginalL'auteur Thomas | 2012-07-12
Vous devez vous connecter pour publier un commentaire.
GCC a généralement le standard C++ en-têtes installé dans
/usr/include/c++/<version>/
. Vous pouvez exécutergcc -v
pour connaître la version que vous avez installée.Au moins dans ma version, il n'y a pas de
vector.h
; le public d'en-tête est justevector
(sans extension), et plus de la mise en œuvre est enbits/stl_vector.h
.C'est le cas sur ma distribution Ubuntu; votre distribution peuvent varier.
OriginalL'auteur Mike Seymour
De course
g++ -v -v -v
sorties de beaucoup de choses, y compris tous les répertoires include recherché.vector
est dans un de ces.OriginalL'auteur R. Martinho Fernandes
Sur ma Debian Stable du système
vector
est ici:OriginalL'auteur genpfault
Sur un "simple" ubuntu install, vous devez installer
"libstdc++(version)-dev"
pour obtenir les fichiers d'en-tête.
puis cheque les fichiers installés, vous aurez le chemin !
OriginalL'auteur jo_
Dans de nombreux IDE (par exemple, NetBeans), vous pouvez utiliser
Ctrl+Click
de classe pour aller à la définitionOriginalL'auteur RiaD