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,失败返回0
M.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++;
}
}
本文详细介绍了C++标准模板库中的map容器,包括其内部实现为红黑树的数据结构特点、三种插入数据的方法、如何进行数据查找及删除操作等关键知识点。
542

被折叠的 条评论
为什么被折叠?



