Es ist nicht erforderlich, dass die Implementierungsdetails von std::map<>
für einen Benutzer dieser Bibliothek sichtbar sind. Eine „C++ Implementierung“ kann tun, was es bequem findet, so dass, wenn Sie
#include <map>
std::map<int, int> map;
der Code kompiliert und ausgeführt schreiben.
Einige Implementierungen finden, dass es in der Tat „bequem“ ist der Code zu platzieren, dieKarte genannt etwas wie
namespace std
{
template<typename Key, typename T,
typename Compare = std::less<Key>,
typename Allocator = std::allocator<std::pair<const Key, T>>>
class map { /* ... */ };
}
in einer Datei aussehen könnte. Wenn Sie eine solche Implementierung verwenden, sollten Sie die Datei irgendwo auf der Festplatte finden können. (Und nur weil eine solche Datei existiert, bedeutet das nicht unbedingt, dass Sie mit ihrem Inhalt alles machen können, was Sie wollen.)
libC++ und libstdC++ sind beide Open Source. – NathanOliver
@ FrançoisAndrieux: Compiler dürfen nicht ** Dateien ** für System-Header als '
@ Jarod42 Das war mir noch nie begegnet, danke für die Korrektur. –