Last update 1999/08/07

STL周辺情報集


リンク集

海外(daigoさん)

Standard Template Library Programmer's Guide SGIのSTLページ。STLインプリメンテーション、リファレンスなど。
SGI STL Adaptation Page SGI版のSTLをいろんなコンパイラで動かすための情報、SGI版のSTLの修正版があります。
Hewlett Packard's STL 本家HPのSTLインプリメンテーションがあります。
The STL Resource List STL関連のリンク集。

国内(全文検索)

角 正史のページ STLの網羅的な解説を行う予定のようです。
尾高雄吾ホームページ 仕様よりの解説がされています。
Iimori's Home Page CodeWarriorへのSGI STLの導入の説明などがあります。
AAA (Amris Amusing Atlas) 「C++との付き合い方」ではmapの説明などが行われています。
Takuya NISHIMOTO Homepage STLのG++への導入などが書かれています。

実装情報

VC++情報(掲示板から)

SGI版STLの導入ガイド(VisualC++5.0以降)(daigoさん)

1.

SGI STL Adaptation Pageから、STLport-3_01.zipをダウンロードします。 SGIのサイトにはこれより新しいバージョンのものがありますが、SGI STL Adaptation Pageによると、VC5.0でSGI版STLと<iostream>、<string>を一緒に使うとコンパイルエラーが発生します(これはVC6.0でも確認できます)。

2.

ダウンロードしたファイルを適当なディレクトリに解凍します。あとで元に戻せるようにVisualC++のIncludeディレクトリに上書きしない方が無難だと思います。

3.

VisualC++のメニューから[ツール]→[オプション]を選択して、[ディレクトリ]タブを表示します。
[表示するディレクトリ]のリストをインクルードファイルにして、[ディレクトリ]のところに先程STLを解凍したディレクトリを入力します。
右の方の矢印のボタン(?)を使って、入力したディレクトリの項目が一番上になるようにします。

4.

終わりです。

 

SGI版のレビュー(TAOSさん)

こちら

さらなる抽象化のために

sh/csh/perlライクなマクロ(平山)

#define foreach(a,b,c) \
    for(a::iterator c=(b).begin();(c)!=(b).end();(c)++)
#define const_foreach(a,b,c) \
    for(a::const_iterator c=(b).begin();(c)!=(b).end();(c)++)

こういうふうに使います。

foreach(std::vector<int>,v,i){
    ...
}

姑息な技

バッファとして使う(平山)

メモリの確保にはvector<byte>を使うと解放の必要がなくて便利。アドレスを取るにはbegin()を使う。

関連情報はこちら

例外処理を取り除く(TAOSさん)

#ifdef NDEBUG
#define at(a) operator[](a)
#endif

(C) 1998 Naoyuki Hirayama. All rights reserved.