Где находятся заголовки стандартной библиотеки С++

Интересно, где в моей файловой системе я нахожу заголовки библиотеки С++ Standard. В частности, я ищу определение векторного шаблона. Я искал в/usr/include/и различных подкаталогах. Я также попытался "найти vector.h", который вызвал множество реализаций векторов, но не стандартный. Что мне не хватает? (Распределение Gentoo)

Фон: я профилирую библиотеку, которая выполняет большую часть времени итерации по вектору, и gprof показывает, что большую часть времени тратится на

std::vector<int, std::allocator<int> >::_M_insert_aux(
  __gnu_cxx::__normal_iterator<int*, std::vector<
      int, std::allocator<int> > >, int const&)

Возможно, это то, что происходит внутри на std::vector:: push_back, но я не уверен.

Ответ 1

GCC обычно имеет стандартные заголовки С++, установленные в /usr/include/c++/<version>/. Вы можете запустить gcc -v, чтобы узнать, какую версию вы установили.

По крайней мере, в моей версии нет vector.h; общий заголовок - это просто vector (без расширения), и большая часть реализации находится в bits/stl_vector.h.

Что касается моего дистрибутива Ubuntu; ваше распределение может отличаться.

Ответ 2

Запуск g++ -v -v -v выводит множество вещей, включая все каталоги включенных каталогов. vector находится в одном из них.

Ответ 3

В моей системе Debian Stable vector находится здесь:

/usr/include/c++/4.4/vector

Ответ 4

В "простой" установке ubuntu вам нужно установить

"libstdС++ (версия) -dev"

чтобы получить файлы заголовков.

а затем набрав установленные файлы, вы получите путь!

Ответ 5

Во многих IDE (например, NetBeans) вы можете использовать Ctrl+Click для className, чтобы перейти к определению