CSTLは、C言語で使えるC++のSTLライクなコンテナライブラリです。vector, deque, list, set, multiset, map, multimap, unordered_set, unordered_multiset, unordered_map, unordered_multimap, stringを提供します。
![CSTL プロジェクト日本語トップページ - OSDN](https://cdn-ak-scissors.b.st-hatena.com/image/square/882204600c60d0adc883b3c81bacb9339aa714d2/height=288;version=1;width=512/https%3A%2F%2Fstatic-cdn.osdn.net%2Fdefault-photo.png)
gcc環境だと math.h に NAN という定数が定義されている。ところが visual c++ (visual studio)には対応する定義が無い。 環境に依存しない、ポータブルな、移植性の高いコードが必要な場合は、STLを使って #include <limits> std::numeric_limits<float>::quiet_NaN(); std::numeric_limits<double>::quiet_NaN();と書けば良い。 なお quiet_NaN() の"quiet"はシグナルを発生させないという意味。浮動小数点関連の仕様を定めているIEEE 754は、2 種類の NaN を用意していて、 シグナルを発生するNAN (signaling nan) シグナルを発生しないNAN (quiet nan) して区別している。つまりシグナルハンドラから見て、五月蝿い(s
STL のバインダとリファレンスへのリファレンス問題 STL に含まれる bind1st と bind2nd は for_each や find などの関数と組み合わせて使うと便利です。しかしながら、リファレンス (参照) を引数に取る関数の引数をバインドすることはできないので注意が必要です。 注意が必要ですと言いつつ、自分がこの問題を知らずにはまりました。次のようなコードで問題は起きます。 #include <algorithm> #include <functional> #include <iostream> #include <string> #include <vector> using namespace std; void print(const string& s1, const string& s2) { cout << s1 << ": " << s2 << endl;
Welcome to STLport Consulting! The company was started back in 1997 by a small group of developers gathered around STLport Standard Library Project. Since then STLport has been accepted by the technical community as industry standard for multiplatform development. STLport library can be downloaded here at no charge. Complete first-hand product support is being rendered by the original developer cr
stackとは スタックは末尾(または先頭)に限って要素の追加削除を行うことのできるデータ構造です。 末尾からしか要素を取り出せないので、 必然的に「後に入れたものから先に取り出さなくてなはならない」ということになります。 そのため、スタックはLIFO(last-in first-out)とも呼ばれます。 スタックに新しい要素を挿入することをpush、要素を取り出すことをpopといいます。 スタックは末尾への要素の挿入・削除ができるデータ構造なら何を使っても実装することができます。 普通は配列や単方向連結リストを用いて実装します。 STLにおけるstack STLのstackは何を使って実装するかをvector,deque,listの中から選べます。 スタックの要素の型をTとすると、
C++マニアック mem_fun,mem_fun_ref,クラスのメンバ関数を呼び出すテンプレート関数 ページの末尾へ トップページへ mem_fun、mem_fun_ref、クラスのメンバ関数を呼び出すテンプレート関数 mem_fun、mem_fun_ref は、STL の functional の一つで、クラスのメンバ関数を呼び出すためのテンプレート関数です。functional とは、補助関数とでもいう意味でしょう。 mem_fun とは で、何をするものか mem_fun とは ページの先頭へ まず mem_fun とは、何をするものなのかを解説しましょう。次は、引数の無いメンバ関数 Func0 を持つクラスです。 class CThing { public: int Func0() { return printf("This is Func0\n"); }
1985年、AT&TのBjarne StroustrupがC++をこの世に送り出しました。その後C++は様々な拡張を繰り返しながら進化してきました。 1991年、ISOはC++の国際標準(standard C++)を定める作業を開始しました。標準C++の最終草案は1997年にISO C++標準化委員会に承認されました。 標準C++が規定するのは言語仕様だけなく、C++標準ライブラリも規格の中で明確に定められています。それまでC++のライブラリといえばiostreamぐらいのものでしたし、それもあくまで"事実上の標準"でしかありませんでした。 そしてそのC++標準ライブラリの一部として組み入れられたのがSTL(Standard Template Library)です。すなわちSTLは標準C++の仕様の一部ということです。 僕がSTLを知ったのは1995年、いくつかのコンパイラがtemplat
STL の string のリファレンスカウント Effective STLによると、多くの STL の実装では string クラスの内部において、文字列のコピーを減らすために、リファレンスカウントが行われているそうです。そこで、手元の環境の string クラスでリファレンスカウントが実際に行われているか調べてみました。 結論としては、Debian GNU/Linux sarge + GCC 3.3.5 の環境では、リファレンスカウントが行われていました。次のコードをコンパイルして実行すると 2つの string オブジェクトの data() は同じアドレスを指している (つまり、メモリ上の同じ文字列を共有している) ことがわかります。 #include <stdio.h> #include <string> using namespace std; int main() { stri
C++ の string と vector の reserve() の挙動 C++ の string と vector には前もって容量を確保するための reserve() というメンバ関数があります。何気なく使っていた関数ですが最近になって興味深い挙動に気づきました。 reserve() の基本 string と vector の reserve() は前もって容量 (capacity) を確保しておくためのメンバ関数です。前もって容量を確保 (reserve) しておけば、データの追加時に発生する再割り当て (reallocation) を防ぐことができ、効率的です。 たとえば、何もしないで文字列に 1,000文字追加した場合、(内部的に倍々で容量を増やしていくため)10回程度の再割り当てが発生しますが、 s.reserve(1000) のように容量を確保しておけば 1回の割り当て (
角のページへ戻る STL(Standard Template Library) C++の標準テンプレートライブラリ、STLのページです。 2003/6/7 コンテナ全ページ標準に合わせて修正 目次(と予定) 更新履歴 はじめに STLとは? '99 11/07 作成 その前にC++で知っておかなければならないこと 馴染みがない(かもしれない)単語 '99 9/23 わずかに修正 テンプレート(template<>) 2001 1/31 更新 環境 '99 2/20 VCでSGI_STLを使う、BeOS、egcs等 使い方 イテレータ(反復子)の使い方 '99 6/19 更新 関数オブジェクトの使い方 '99 7/4 mem_fun()の使い方追加 早見表 STLで使う主なクラス '99 6/13 各クラスの説明、ヘッダをまとめた STLで使われる名前 '99 6/13 微妙に更
角のページへ戻る STL(Standard Template Library) C++の標準テンプレートライブラリ、STLのページです。 2003/6/7 コンテナ全ページ標準に合わせて修正 目次(と予定) 更新履歴 はじめに STLとは? '99 11/07 作成 その前にC++で知っておかなければならないこと 馴染みがない(かもしれない)単語 '99 9/23 わずかに修正 テンプレート(template<>) 2001 1/31 更新 環境 '99 2/20 VCでSGI_STLを使う、BeOS、egcs等 使い方 イテレータ(反復子)の使い方 '99 6/19 更新 関数オブジェクトの使い方 '99 7/4 mem_fun()の使い方追加 早見表 STLで使う主なクラス '99 6/13 各クラスの説明、ヘッダをまとめた STLで使われる名前 '99 6/13 微妙に更
Tutorials C++ Language: Learn this versatile and powerful programming language. Includes detailed explanations of pointers, functions, classes and templates, among others... Reference Description of the most important classes, functions and objects of the Standard Language Library, with descriptive fully-functional short programs as examples. Browse the C++ Reference Articles User-contributed arti
Copyright (c) 1998, Rogue Wave Software, Inc. このマニュアルに関する誤りのご指摘やご質問は、電子メールにてお送りください。 OEM リリース, 1998 年 6 月 本書は、標準 C++ ライブラリの一般ユーザー向けマニュアルです。標準 C++ ライブラリには、この他に以下のマニュアルがあります。 『標準 C++ ライブラリの入出力とロケール』 『標準 C++ クラスライブラリ・リファレンス』(英語版) このマニュアルには、すべての章タイトルと見出しの第 1 レベルと第 2 レベルが表示される、次の項目があります。目次以下の章のタイトルをクリックすると、目的の章へ直接移動することができます。各章には、章の目次が用意されています。 また、索引 もあります。 第 I 部: はじめに 第 1 章: 概要 第 II 部: 基本事項 第 2 章: 反復
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く