stl::(7)map容器API

map 构造函数

map<T1,T2>mapT;        // 默认构造函数
map(const map &mp);    // 拷贝构造函数

map 赋值操作

map& operator=(const map &mp);  // 重载=
swap(mp);                       // 交换两个集合容器

map 大小操作

size();    // 返回容器中元素的数目
empty()// 判断容器是否为空

map 插入数据元素操作

map.insert(...)// 往容器插入元素,返回pair(iterator,bool)
map<int, string>mapStu;
// 第一种通过pair的方式插入对象
mapStu.insert(pair<int, string>(3,"张三"));
// 第二种通过pair的方式插入对象
mapStu.insert(make_pair(-1,"李四"));
// 第三种通过value_type的方式插入对象(不推荐)
mapStu.insert(map<int, string>::value_type(1,"王五”))// 第四种通过数组的方式插入值
map[3]="赵六"

map 删除操作

clear();        // 删除所用元素
erase(pos);     // 删除pos迭代器所指的元素,返回下一个元素的迭代器
erase(beg , end);     // 删除[beg, end)的所有元素, 返回下一个元素的迭代器
erase(keyElem);       // 删除容器key为keyElem的对组

map 查找操作

find(key);         // 查找key是否存在,若存在,返回该元素的迭代器,若不存在,返回map.end()
count(keyElem);    // 返回容器key为keyElem的对组个数,对map来说,要么是0,要么是1。对于multimap可能大于1
lower_bound(keyElem);     // 返回第一个key>=keyElem元素的迭代器
upper_bound(keyElem);     // 返回第一个key>keyElem元素的迭代器
equal_range(keyElem);     // 返回容器中key与keyElem相等的上下限的两个迭代器

map 自定义排序

class myCompare
{
    
    
public:
  bool operator()(int v1,int v2)
{
    
    
return  true;
}
};

int main()
{
    
    
// 大到小排序
map<int , int ,myCompare>m;
m.insert(pair<int, int>(1,10));
m.insert(make_pair(2,20));
m.insert(map<int, int>:: value_type(3,33));
m[4]=40;
for(map<int, int ,myCompare>::iterator it=m.begin();i!=m.end();i++)
{
    
    
cout<<it->first<<"-"<<it->second<<endl;
}
}

猜你喜欢

转载自blog.csdn.net/qq_40329851/article/details/114379339