0

私はSTLマップを持っています:

std::map<std::string, std::vector<int> > my_map;

私は2つの変数を持っています:

string name;
int age;

これらの変数の値は変化しますが、本質的に私がやろうとしていることは次のとおりです。

  1. キー名が存在しない場合は、キー名を作成し、ベクトルに年齢を追加します。
  2. それ以外の場合、キー名が存在する場合はベクトルに年齢を追加します。

最終的には、人々の名前と、それらの名前を持つ人々の年齢が整数ベクトルに格納されたマップが作成されます。

私の人生では、これを行うための構文を考え出すことはできません。助けてください :(。

アンドリュー

4

2 に答える 2

2

更新後は、単に

my_map[ "Daniel" ].push_back( 40 );
my_map[ name ].push_back( age );

キーが存在するかどうかに関係なく、両方のケースで機能します。

于 2013-10-12T23:50:16.813 に答える
1

以下のマップを考えると:

 std::map<std::string,int> mymap;

 // Whether the key exists or not it will put something on the key.
 // So, if it does not exist it will create it, and if it exists it will
 // just replace it.
 mymap["somestring"] = 50;
 mymap["b_string"] = 100;

それがあなたが必要としているものだと思います。間違っていたら教えてください。また、これをアドバイスすることを忘れないでください:http://en.cppreference.com

C++ の STL 関数の基本的な概念と多くの例をいつでも見つけることができます。

于 2013-10-12T23:51:01.630 に答える