概要

  • 静的な連想配列を初期化するサンプル。
  • 一旦、該当 map の value_type の配列を用意し、map( InputIterator _First, InputIterator _Last ); でコンストラクトする。

ソース

  • fileStaticMap.zip
    すべてを展開すべてを収束
      1
      2
      3
      4
      5
      6
      7
      8
      9
     10
     11
     12
     13
     14
     15
     16
     17
     18
     19
     20
     21
     22
     23
     24
     25
     26
     27
     28
     29
     30
     31
     32
     33
     34
     35
     36
     37
     38
     39
     40
     41
     42
     43
     44
    
     
     
     
     
     
     
     
     
     
    -
    |
    |
    |
    |
    !
     
     
     
     
    -
    |
    |
    |
    |
    |
    |
    |
    |
    |
    -
    |
    |
    |
    |
    |
    |
    |
    |
    !
    |
    |
    !
     
     
    
    // StaticMap.cpp : コンソール アプリケーションのエントリ ポイントを定義します。
    //
     
    #include "stdafx.h"
    #include <locale.h>
    #include <map>
     
    typedef std::map<const int, const _TCHAR*> ErrorCodeType;
     
    const ErrorCodeType::value_type _rawErrors[] = {
        ErrorCodeType::value_type( 101,    _T("型が不正です") ),
        ErrorCodeType::value_type( 201,    _T("文字列が不正です") ),
        ErrorCodeType::value_type( 202,    _T("文字列の長さが不正です") ),
        ErrorCodeType::value_type( 301,    _T("値が不正です") ),
    };
     
    const ErrorCodeType ErrorCodes = ErrorCodeType( _rawErrors, _rawErrors + _countof(_rawErrors) );
     
    int _tmain(int argc, _TCHAR* argv[])
    {
        _tsetlocale( LC_ALL, _T("Japanese_Japan.932") );
     
    //	ErrorCodes は const なので変更はコンパイルエラーになる。
    //	ErrorCodes[ 1 ] = _T("New");
     
        _tprintf( _T("要素数: %d\n"), ErrorCodes.size() );
     
        int    Ids[] = { 101, 201, 202, 301, 1, -1 };
     
        for( int i=0; i<_countof(Ids); ++i ){
            int id = Ids[i];
     
            ErrorCodeType::const_iterator iter = ErrorCodes.find( id );
            const _TCHAR* message = ( iter != ErrorCodes.end() )
                ? iter->second
                : _T("未定義エラー");
     
            _tprintf( _T("%d:\t%s\n"), id, message );
        }
     
        return 0;
    }
     
    // EOF
    

出力

要素数: 4
101:    型が不正です
201:    文字列が不正です
202:    文字列の長さが不正です
301:    値が不正です
1:      未定義エラー
-1:     未定義エラー

添付ファイル: fileStaticMap.zip 186件 [詳細]

リロード   新規 下位ページ作成 編集 凍結 差分 添付 コピー 名前変更   ホーム 一覧 検索 最終更新 バックアップ リンク元   ヘルプ   最終更新のRSS
Last-modified: Tue, 26 Feb 2013 12:32:53 JST (1968d)