map <string, int> word_count; // empty map // insert default initialzed element with key Anna; then assign 1 to its value word_count["Anna"] = 1; 存在则改变,不存在则加入
m.insert(e) e 是一个用在 m 上的 value_type 类型的值。如果键(e.first)不在 m 中,则插入一个值为 e.second 的新元素;如果该键在 m 中已存在,则保持 m 不变。该函数返回一个pair 类型对象,包含指向键为 e.first 的元素的 map 迭代器,以及一个 bool 类型的对象,表示是否插入了该元素 m.insert(beg,end) beg 和 end 是标记元素范围的迭代器,其中的元素必须为m.value_type 类型的键-值对。对于该范围内的所有元素,如果它的键在 m 中不存在,则将该键及其关联的值插入到 m。(返回 void 类型) m.insert(iter,e) e 是一个用在 m 上的 value_type 类型的值。如果键(e.first)不在 m 中,则创建新元素,并以迭代器 iter 为起点搜索新元素存储的位置。(返回一个迭代器,指向 m 中具有给定键的元素)。
intmain(){ vector<int> numbers; int n = numbers.size();
map<int, int> m; int count; for (int i = 0; i < n; i++) { count = ++m[numbers[i]]; //这里原来元素是不存在的,但是却可以直接加1; if (count > n/2) return numbers[i]; } return0; }