Il n'existe pas de vecteur «standard». La norme définit le comportement et l'interface (ainsi que certains détails d'implémentation, tels que le stockage contigu), mais le code est à déterminer par les rédacteurs du compilateur.
Votre compilateur devrait avoir son propre fichier d'en-tête <vector>
, avez-vous vérifié cela sur votre chemin d'inclusion de construction? Une fois que vous trouvez que vous devriez également voir les autres conteneurs STL dans leurs en-têtes respectifs. La liste pour Microsoft Visual C++ est here, y compris certains qui sont la propriété, donc attention à ce que par l'avertissement ci-dessous exemple:
Dans Visual C++ .NET 2003, les membres de les <hash_map>
et <hash_set>
tête fichiers sont ne figure plus dans l'espace de noms , mais a plutôt été déplacé dans l'espace de noms stdext. Voir stdext Espace de noms pour plus d'informations.
Sur mon installation de Visual C++ Express 2010, ils sont dans ce dossier:
c: \ program files \ Microsoft Visual Studio 10.0 \ vc \ include
Il est toujours bon de regarder et d'apprendre. Mais je ne suis pas sûr de regarder le code source de quelque chose d'aussi complexe que 'std :: vector' est un bon choix. Bien sûr, vous pourriez apprendre beaucoup, mais vous pourriez aussi vous perdre très facilement. – ereOn
De nombreuses implémentations STL incluront beaucoup de code pour des choses comme le débogage d'itérateur - il sera difficile à lire et contiendra beaucoup de code qui n'est pas directement lié à ce que fait le vecteur. Peut-être pas le meilleur endroit pour apprendre. – AshleysBrain