STL—map(二)

简介: map中的函数

3.map中的函数

(1)find()

m.find(key);返回值为key的映射的迭代器,时间复杂度是O(logN),N为map中映射的个数

#include <iostream>
#include <map>
using namespace std;
int main()
{
    map<char, int> m;
    m['c'] = 3;
    m['a'] = 1;
    m['b'] = 2;
    map<char, int>::iterator it = m.find('b');
    cout << it -> first << ' ' << it -> second << endl;
    return 0;
}

输出结果为:b 2

(2)erase()

删除单个元素

m.erase(it);it为需要删除元素的迭代器,时间复杂度为O(1)

#include <iostream>
#include <map>
using namespace std;
int main()
{
    map<char, int> m;
    m['c'] = 3;
    m['a'] = 1;
    m['b'] = 2;
    map<char, int>::iterator it = m.find('b');
    m.erase(it);              //删除 b 2
    for (auto it = m.begin(); it != m.end(); it ++ )
        cout << it -> first << ' ' << it -> second << endl;
    return 0;
}

输出结果为:

a 1

c 3

m.erase(key);key为欲删除的映射的键,时间复杂度为O(logN),N为map内元素的个数

#include <iostream>
#include <map>
using namespace std;
int main()
{
    map<char, int> m;
    m['c'] = 3;
    m['a'] = 1;
    m['b'] = 2;
    m.erase(m.find('b'));               //删除 b 2
    for (auto it = m.begin(); it != m.end(); it ++ )
        cout << it -> first << ' ' << it -> second << endl;
    return 0;
}

删除一个区间内的所有元素

m.erase(first, last);,其中first是需要删除区间的起始迭代器,last为需要删除的区间的末尾迭代器的下一个地址,即删除左闭右开区间[first, last),时间复杂度为O(last - first)

#include <iostream>
#include <map>
using namespace std;
int main()
{
    map<char, int> m;
    m['c'] = 3;
    m['a'] = 1;
    m['b'] = 2;
    m.erase(m.find('b'), m.end());
    for (auto it = m.begin(); it != m.end(); it ++ )
        cout << it -> first << ' ' << it -> second << endl;
    return 0;
}

输出结果为:a 1

(3)size()

m.size()用来获得map中映射的对数,时间复杂度为O(1)

#include <iostream>
#include <map>
using namespace std;
int main()
{
    map<char, int> m;
    m['c'] = 3;
    m['a'] = 1;
    m['b'] = 2;
    cout << m.size();
    return 0;
}

输出结果为:3

(4)clear()

m.clear();用来清空map中的所有元素,时间复杂度为O(N),N为map中元素的个数

#include <iostream>
#include <map>
using namespace std;
int main()
{
    map<char, int> m;
    m['c'] = 3;
    m['a'] = 1;
    m['b'] = 2;
    m.clear();
    cout << m.size();
    return 0;
}

输出结果为:0

目录
相关文章
|
9月前
|
C++ 容器
【C++】红黑树模拟实现STL中的map与set
【C++】红黑树模拟实现STL中的map与set
|
8月前
|
存储 编译器 C++
|
7月前
|
存储 算法 C++
【C++高阶】探索STL的瑰宝 map与set:高效数据结构的奥秘与技巧
【C++高阶】探索STL的瑰宝 map与set:高效数据结构的奥秘与技巧
94 0
|
7月前
|
存储 C++ 索引
C++基础知识(八:STL标准库 Map和multimap )
C++ 标准模板库(STL)中的 map 容器是一种非常有用的关联容器,用于存储键值对(key-value pairs)。在 map 中,每个元素都由一个键和一个值组成,其中键是唯一的,而值则可以重复。
111 0
|
8月前
|
C++ 容器
C++ STL标准库 《map容器详解》
C++ STL标准库 《map容器详解》
57 0
|
8月前
|
存储 C++ 容器
C++ STL标准库 《map容器详解》
C++ STL标准库 《map容器详解》
120 0
|
9月前
|
存储 C++ 容器
C++:STL - set & map
C++:STL - set & map
73 4
|
9月前
|
存储 Serverless C++
【C++入门到精通】哈希 (STL) _ unordered_map _ unordered_set [ C++入门 ]
【C++入门到精通】哈希 (STL) _ unordered_map _ unordered_set [ C++入门 ]
109 1
|
9月前
|
C++ 索引 容器
黑马c++ STL部分 笔记(9) map/multimap容器
黑马c++ STL部分 笔记(9) map/multimap容器
|
9月前
|
存储 C++ 容器
【STL】map和set的原理及其使用
【STL】map和set的原理及其使用