Effective STLスタート

2505 ワード

This is the first blog part about STL. Effective STLでは、STLコンポーネントと組み合わせてライブラリの設計において最大のメリットを得る方法について説明します.このような情報は、簡単で直接的な問題に対して簡単で直接的な解決策を開発することを可能にし、より複雑な問題に対して優雅な方法を設計するのに役立ちます.STLは反復器と連携したC++標準ライブラリの一部であり、標準コンテナ(stringを含む)、iostreamライブラリの一部、反復器、関数オブジェクト、アルゴリズムを含む.
STL基本用語:1、vector、string、deque、listを標準シーケンスコンテナと呼ぶ.set、multiset、map、およびmultimapは、標準関連コンテナと呼ばれる.2、5種類の反復器入力反復器は、反復位置ごとに1回しか読めない読み取り専用反復器である.出力反復器は、反復位置ごとに1回しか書けない書き込み反復器です.入力および出力反復器は、読み取りおよび書き込み入力および出力ストリームとして形成される(ファイルなど).したがって、入力および出力反復器の最も一般的な表現はistream_iteratorとostream_iteratorであることは不思議ではありません.順方向反復器には入力および出力反復器の能力がありますが、1つの場所を繰り返しまたは書き込むことができます.後退操作はサポートされていません.双方向反復器は順方向反復器のように後退の反復操作を加えています.反復にランダムにアクセスします器は双方向反復器のすべてのことをすることができますが、「反復器算術」を提供します.つまり、一歩前進したり後ろにジャンプしたりする能力があります.vector、string、dequeはランダムアクセス反復器を提供します.3、関数呼び出しオペレータ(operator()をリロードしたクラスを擬似関数クラスと呼びます.このようなクラスから作成されたオブジェクトを関数オブジェクトまたは擬似関数と呼びます.STLのほとんどが関数オブジェクトを使用できる場所でも真関数を使用できます.
#include <iostream>
#include <list>
#include <map>
//using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
    using std::map;
    using std::list;
    using std::string;
    using std::cout;
 list<int> lists;
 map<string,double> maps;
 string s = "sdwe";
 cout<<s.data();
    getchar();
    return 0;
}

USing namespace stdは使用しないほうがいいです.この書き方は、stdの関数宣言をすべて漏らすため、自分が書いたコード関数名と衝突する可能性があり、結果的に自分のコード機能を上書きしてしまう.USing std::classnameを推奨します.この方法.