map映射容器的数据结构是采用红黑树来实现的,插入元素的键值不可重复。
map的插入:
在没有指定比较函数时,map元素的插入位置是按key的升序插入到红黑树中的。有三种插入方式。
map<int,int> M;M.insert(pair<int,int>(1,2));//第一种:用insert函数插入pair数据M.insert(map<int,int>::value_type(3,4));//第二种:用insert函数插入value_type数据M[5]=6;//第三种:用数组方式插入数据反向遍历:map<int, int>::reverse_iterator iter; for(iter = M.rbegin(); iter != M.rend(); iter++) { cout<<iter->first<<" "<<iter->second<<endl; }数据查找(key值匹配):M.count(3);//查找成功返回1,失败返回0M.find(3)==M.end();//查找成功返回数据所在位置的迭代器,失败返回等于end函数返回的迭代器数据删除:M.erase(1);//单个数据的删除。//在循环体中删除数据 //例如删除满足条件的元素· typedef map<int,int>::iterator ITER; for(ITER iter=M.begin(); iter!=M.end();) { if (iter->second == 1) { M.erase(iter++);//防止iter成为野指针。 } else { iter++; } }
新闻热点
疑难解答