-1

マップを次のようにmap <string , int> します。文字列を挿入したいのですが、同じ文字列が再度挿入された場合は、カウントを整数部分に格納します。方法を教えてください??

4

5 に答える 5

2

次のコードでこれを簡単に行うことができます:my_map[key]++;

于 2013-02-15T15:00:22.793 に答える
2

これを行う:

++m.insert(std::make_pair("Hello", 0)).first->second;

またはもっと簡単に:

++m["hello"];

insert最初のアプローチでは、操作の結果を保存する場合、文字列が既に存在するかどうかを確認できます。たとえばauto p = m.insert(...); ++p.first->second;p.second挿入操作が成功したかどうかがわかります。

于 2013-02-15T14:59:43.693 に答える
1

実際、私はそれでm["key"]++うまくいくと信じています。

于 2013-02-15T15:00:35.860 に答える
1

なので、必要なのは次のとおりですint{}0

++m[str];
于 2013-02-15T15:00:48.990 に答える
1

find()メソッドを使用して、キーがマッピングにあるかどうかを確認します。

std::map<string, int> mapping;
std::string str;
//...

if(mapping.find(str) != mapping.end()) {
    mapping[str]++;
} else {
    mapping[str] = 1;
}
于 2013-02-15T15:01:17.303 に答える