C++ map总结

简介: C++ map总结

目录


介绍


常用函数


函数实例


插入元素,并判断是否插入成功


遍历map


查找元素


删除元素


介绍

map是STL的一个关联容器,它提供一对一的hash。


第一个可以称为关键字(key),每个关键字只能在map中出现一次;

第二个可能称为该关键字的值(value);

map以模板(泛型)方式实现,可以存储任意类型的数据,包括使用者自定义的数据类型。Map主要用于资料一对一映射(one-to-one)的情況,map內部的实现自建一颗红黑树,这颗树具有对数据自动排序的功能。在map内部所有的数据都是有序的,如下图:

tt.png

常用函数

begin() 返回指向map头部的迭代器

clear() 删除所有元素

count() 返回指定元素出现的次数


empty() 如果map为空则返回true

end()   返回指向map末尾的迭代器


equal_range()    返回特殊条目的迭代器对


erase() 删除一个元素

find()  查找一个元素

insert()插入元素

max_size()返回可以容纳的最大元素个数

size()  返回map中元素的个数

swap()  交换两个map


get_allocator()  返回map的配置器

 key_comp()       返回比较元素key的函数

 lower_bound()    返回键值>=给定元素的第一个位置

 max_size()       返回可以容纳的最大元素个数

 rbegin()         返回一个指向map尾部的逆向迭代器

 rend()           返回一个指向map头部的逆向迭代器

  upper_bound()     返回键值>给定元素的第一个位置

  value_comp()      返回比较元素value的函数


函数实例

插入元素,并判断是否插入成功

#include <map>


#include <iostream>


using namespace std;



int main()


{



   map<int, string> myMap;


   // 第一种 用insert函數插入pair


   myMap.insert(pair<int,string>(01, "aa"));


   // 第二种 用insert函数插入value_type数据


   myMap.insert(map<int, string>::value_type(02, "bb"));


   // 第三种 用"array"方式插入


   myMap[33] = "cc";


   // 构造定义,返回一个pair对象,验证是否添加成功


   pair<map<int, string>::iterator, bool> Insert_Pair;


   Insert_Pair = myMap.insert(map<int, string>::value_type(33, "cc"));


   if (!Insert_Pair.second)


       cout << "Error insert new element" << endl;


   cout << "\n";


   return 0;


}


遍历map

#include <iostream>


#include <map>


using namespace std;



int main() {


   map<int, int> m;


   for (int i = 0; i < 5; i++) {


       m[i] = i * i;


   }


   //第一种遍历方式,迭代器+while


   map<int, int>::iterator iter;


   iter = m.begin();


   while (iter != m.end()) {


       cout << iter->first << "-" << iter->second << endl;


       iter++;


   }


   //第二种遍历方式,for+迭代器


   for (iter = m.begin(); iter != m.end(); iter++) {


       cout << iter->first << "-" << iter->second << endl;


   }


   //第三种遍历方式,for+auto


   for (auto &it : m) {


       cout << it.first << "-" << it.second << endl;


   }


   return 0;


}


查找元素

#include <iostream>


#include <map>


using namespace std;



int main() {


   map<int, int> m;


   for (int i = 0; i < 5; i++) {


       m[i] = i * i;


   }


 


   auto it = m.find(3);


   if (it != m.end())


   {


       int ss = (*it).second;//或者int ss=it->second


       cout << ss << endl;


   }


   return 0;


}


删除元素

#include <iostream>


#include <map>


using namespace std;



int main() {


   map<int, int> m;


   for (int i = 0; i < 5; i++) {


       m[i] = i * i;


   }


   //删除键为bfff指向的元素


   m.erase(4);


   //删除迭代器 key所指向的元素


   map<int, int>::iterator key = m.find(2);


   if (key != m.end())


   {


       m.erase(key);


   }


   //删除所有元素


   m.erase(m.begin(), m.end());


   return 0;


}


统计key的出现的次数


#include <iostream>


#include <map>


using namespace std;


int main() {


   map<int, int> m;


   for (int i = 0; i < 5; i++) {


       m[i] = i * i;


   }


   int c = m.count(1);


   cout << c << endl;


   return 0;


}


tt.png

tt.png

目录
相关文章
|
3月前
|
编译器 C++ 容器
【C++学习手札】基于红黑树封装模拟实现map和set
【C++学习手札】基于红黑树封装模拟实现map和set
|
4月前
|
存储 C++
【C++】map/multimap/set/multiset的经典oj例题 [ 盘点&全面解析 ] (28)
【C++】map/multimap/set/multiset的经典oj例题 [ 盘点&全面解析 ] (28)
|
4月前
|
存储 自然语言处理 C++
C++中的map和set的使用
C++中的map和set的使用
48 1
C++中的map和set的使用
|
4天前
|
存储 搜索推荐 C++
【C++高阶(二)】熟悉STL中的map和set --了解KV模型和pair结构
【C++高阶(二)】熟悉STL中的map和set --了解KV模型和pair结构
|
1月前
|
存储 算法 C语言
【C++入门到精通】C++入门 —— map & multimap (STL)
之前我们学习了C++的基础和一些概念,现在将探讨重要的STL组件——map与multimap。map是关联容器,提供有序键值对存储,基于红黑树,支持高效查找、插入和删除。每个键唯一对应一个值。multimap则允许键的重复。两者都提供迭代器支持,但map的键是唯一的,而multimap允许键重复,插入和查找效率不同。更多详情,请查阅官方文档。祝学习愉快!
12 0
|
1月前
|
存储 算法 C++
【C++ map结构 】std::map 和 std::unordered_map 在使用上的差异
【C++ map结构 】std::map 和 std::unordered_map 在使用上的差异
22 0
|
1月前
|
存储 算法 C++
【C++ 包装器类 map】C++ 标准库(std)中的map结构 哈希表(unordered_map)和黑红树(map)教程
【C++ 包装器类 map】C++ 标准库(std)中的map结构 哈希表(unordered_map)和黑红树(map)教程
85 1
|
1月前
|
存储 JSON C++
【C++】容器篇(五)—— map和set的基本介绍
【C++】容器篇(五)—— map和set的基本介绍
|
1月前
|
存储 C++ 容器
C++进阶-- map和set
C++进阶-- map和set
|
1月前
|
存储 C++ 容器
在C++语言中map的作用
在C++语言中map的作用
17 1