2012-07-12 30 views
10

私のファイルシステム上のどこにC++標準ライブラリのヘッダがあるのでしょうか。特に、私はベクトルテンプレートの定義を探しています。私は/ usr/include /とさまざまなサブディレクトリを検索しました。私はベクトルの多くの実装をもたらしたが、標準のものではなく、 'locate vector.h'も試みました。私は何が欠けていますか?私はベクトルのを反復処理は、時間とgprofののほとんどは、おそらくこれが内部的に何が起こるかである時間のほとんどは、C++標準ライブラリのヘッダはどこにありますか

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

に費やされていることを示しているライブラリをプロファイリングしています:

背景(分布は、Gentooです) std :: vector :: push_backで、しかし私は確信していません。あなたが私のDebian安定したシステムvectorで定義

+2

***なぜあなたは*** C ***に 'vector'を探していますか? – genpfault

答えて

19

GCCは、一般的に設置され、標準のC++ヘッダを持っています/usr/include/c++/<version>/gcc -vを実行すると、インストールしたバージョンを確認できます。

少なくとも私のバージョンでは、vector.hはありません。公開ヘッダーはvector(拡張子なし)であり、実装のほとんどはbits/stl_vector.hです。

これは私のUbuntuディストリビューションのケースです。あなたの分布は異なるかもしれません。

+1

ありがとう、欠けている.hは重要なヒントです。 Gentooでは、/usr/lib64/gcc/x86_64-pc-linux-gnu/4.5.3/include/g++-v4/vectorにあります。 – Thomas

0

(例えばNetBeansは)ここにある:

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

に行くためにクラス名にCtrl+Clickを使用することができ、多くのIDEで

+0

vector.hですか?どのパッケージがそれを提供していますか? gcc? – Thomas

8

g++ -v -v -vは、検索されたすべてのインクルードディレクトリを含む多くのものを出力します。 vectorはそのいずれかに含まれています。 Ubuntuはあなたがヘッダファイルを取得するために

"のlibstdC++(バージョン)-dev"

をインストールする必要がインストール "プレーン" で

1

インストールされたファイルをクッキングすると、パスが表示されます。

関連する問題