STL容器-map用法总结

来源:互联网 发布:mac 显示.ds store 编辑:程序博客网 时间:2024/05/16 21:28

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++;        }    }



0 0
原创粉丝点击