2

マップとは何ですか?C ++で作成して使用するにはどうすればよいですか?

4

3 に答える 3

3

つまりstd::map、値のペアを格納します。各ペアで、最初の値はキーと呼ばれ、関連する他の値をすばやく検索するために使用できます。

あなたは書ける:

std::map<std::string, int> ages;
ages["Fred"] = 52;
ages["Sue"] = 31;

std::cout << "Fred's age is " << ages["Fred"] << std::endl;
于 2009-06-22T13:14:17.093 に答える
0

マップとは何ですか-それは関連する値のペアを保持するデータ構造です。各ペアは、キーと値で構成されます。マップ内のすべてのキーは一意である必要がありますが、異なるキーが同じ値を持つことができます。マップは、辞書(実際には一部の言語でマップと呼ばれるもの)のように、ルックアップテーブルのキャッシュまたは実装によく使用されます。

C ++でマップを実装する方法については、簡単に言えば、そうではありません。std::mapまたはそのバリアントの1つを使用します。

于 2009-06-22T13:17:54.697 に答える
0

マップはコレクションタイプであり、STL(標準テンプレートライブラリ)のC++で実装されています。ここにライブラリドキュメントからの公式の説明があります。

Mapは、Key型のオブジェクトをData型のオブジェクトに関連付けるソートされた連想コンテナです。マップはペア連想コンテナです。つまり、その値型はペアです。これは一意の連想コンテナでもあり、2つの要素が同じキーを持っていないことを意味します。マップには、新しい要素をマップに挿入しても、既存の要素を指すイテレータが無効にならないという重要な特性があります。マップから要素を消去しても、消去されている要素を実際に指しているイテレータを除いて、イテレータが無効になることはありません。

struct ltstr
{
  bool operator()(const char* s1, const char* s2) const
  {
    return strcmp(s1, s2) < 0;
  }
};

int main()
{
  map<const char*, int, ltstr> months;

  months["january"] = 31;
  months["february"] = 28;
  months["march"] = 31;
  months["april"] = 30;
  months["may"] = 31;
  months["june"] = 30;
  months["july"] = 31;
  months["august"] = 31;
  months["september"] = 30;
  months["october"] = 31;
  months["november"] = 30;
  months["december"] = 31;

  cout << "june -> " << months["june"] << endl;
  map<const char*, int, ltstr>::iterator cur  = months.find("june");
  map<const char*, int, ltstr>::iterator prev = cur;
  map<const char*, int, ltstr>::iterator next = cur;    
  ++next;
  --prev;
  cout << "Previous (in alphabetical order) is " << (*prev).first << endl;
  cout << "Next (in alphabetical order) is " << (*next).first << endl;
}

これは、 STLのマップタイプの完全なドキュメントです。

これがお役に立てば幸いです。

于 2009-06-22T13:18:50.390 に答える