STL学习(?map容器)

发布于:2025-07-25 ⋅ 阅读:(17) ⋅ 点赞:(0)

目录

一、构造与赋值

1.基本概念

2.构造和赋值

二、大小和交换

三、插入和删除

四、查找和统计

五、排序


一、构造与赋值

1.基本概念

所有元素会根据元素的键值自动排序

迭代器是双向迭代器,不是随机迭代器。

2.构造和赋值

函数原型

map<T1,T2> mp;    //  默认构造

map(const map & mp)   // 拷贝构造

赋值

map & operator=(const map &mp)

二、大小和交换

函数原型

size()  // 返回容器中元素数目

empty()   // 判断容器是否为空

swap(st)   //  交换两容器元素

#include<iostream>
#include<map>
using namespace std;
void test1()
{
    map<int, int> m;
    m.insert(pair<int, int>(1, 1));
    m.insert(pair<int, int>(2, 2));
    m.insert(pair<int, int>(4, 4));
    m.insert(pair<int, int>(3, 3));
    if(m.empty())
    {
        cout << "m is empty" << endl;
    }
    else
    {
        cout << "m is not empty" << endl;
        cout << "m size is " << m.size() << endl;
    }
    map<int, int> m1;
    m1.insert(pair<int, int>(12, 6));
    m1.insert(pair<int, int>(13, 7));
    m1.insert(pair<int, int>(14, 8));
    m1.insert(pair<int, int>(15, 9));
    m1.insert(pair<int, int>(16, 10));

    m1.swap(m);
    map<int, int> :: iterator it;
    for(it = m.begin(); it != m.end(); it++)
    {
        cout << it->first << " " << it->second << endl;
    }
}
int main()
{
    test1();
    return 0;
}

三、插入和删除

函数原型

insert(elem)  //向容器中插入元素

clear     // 清空所有元素

erase(pos)   // 删除迭代器所指向元素

erase(begin, end) / / [beigin, end), 删除迭代器这个范围的元素

erase(key)   //  按照key删除元素

四、查找和统计

函数原型

find(key)  // 若存在返回这个键值对应的迭代器,若不存在返回end迭代器

五、排序

利用仿函数,可以改变排序规则


网站公告

今日签到

点亮在社区的每一天
去签到