当前位置: 首页 > news >正文

c++的map基本知识

#include<bits/stdc++.h>
using namespace std;
int main()
{
	map<int,int>mp;//定义一个加mp的map容器 
	mp[10002]=68;
	if(mp.find(10002)!=mp.end())//如果mp容器没有所查询的信息就会返回mp.end() 
	{
		cout<<mp[10002]<<endl;; 
	}
	else
	{
		cout<<"没有此人信息";
	}
	
	map<string,int>s;//定义一个名叫s的map<string,int>容器 
	s["xiaoming"]=80;
	s["xiaohong"]=90;
//	cout<<s["xiaohong"]<<endl;
//	for(auto it:s)   //将容器s从头到尾遍历了一遍 
//	{
//		cout<<it.first<<" "it.second<<endl; 
//	}
map<string,int>::iterator it;//定义map<string,int>类型的迭代器it (指针) 
for(it=s.begin();it!=s.end();it++)  //s.end()就是s的最后一位的后一位 
{
	cout<<(*it).first<<" "<<(*it).second<<endl; 
	
 } 

 return 0;
}

在 C++ 中,map 是标准模板库(STL)中的一个关联容器,它存储的是键值对(key - value pairs),并且按键(key)进行排序。以下是关于 map 的详细知识点:

1. 定义与头文件

  1. 头文件:使用 map 容器需要包含 <map> 头文件,即 #include <map>
  2. 定义map 的定义形式为 std::map<Key, T>,其中 Key 是键的类型,T 是对应值的类型。例如,std::map<std::string, int> 表示一个键为 std::string 类型,值为 int 类型的 map

2. 特性

  1. 按键排序map 内部使用红黑树(一种自平衡二叉搜索树)实现,这使得 map 中的键值对按键自动排序。默认情况下,使用 std::less<Key> 进行升序排序。例如:

cpp

#include <iostream>
#include <map>
#include <string>

int main() {
    std::map<std::string, int> myMap;
    myMap["banana"] = 3;
    myMap["apple"] = 2;
    myMap["cherry"] = 5;

    for (const auto& pair : myMap) {
        std::cout << pair.first << ": " << pair.second << std::endl;
    }
    // 输出: apple: 2
    //       banana: 3
    //       cherry: 5
    return 0;
}

  1. 键的唯一性map 中每个键都是唯一的,不允许重复。如果插入一个已存在键的键值对,新的值会覆盖旧的值。
  2. 动态大小map 的大小可以动态变化,在插入或删除元素时,map 会自动调整内部结构以保持排序和平衡。

相关文章:

  • Hyperlane框架全面详解与应用指南 [特殊字符][特殊字符][特殊字符]
  • React 初学者进阶指南:从环境搭建到部署上线
  • stc8g1k08a adc采集电压输出到串口和屏幕
  • 深入理解 QScrollArea 的 widgetResizable 属性
  • C++——静态成员
  • flutter 专题 六十八 Flutter 多图片上传
  • C++:函数
  • AF3 OpenFoldDataLoader类解读
  • PostgreSQL 一文从安装到入门掌握基本应用开发能力!
  • 【C++】--- string的使用
  • go游戏后端开发24:写完赢三张游戏
  • C++中如何使用STL中的list定义一个双向链表,并且实现增、删、改、查操作
  • #SVA语法滴水穿石# (012)关于 first_match、throughout、within 的用法
  • 华为交换机配置指南:基础到高级命令详解
  • 51单片机使用定时器实现LCD1602的时间显示(STC89C52RC)
  • 迭代器运算详解(四十二)
  • OSI模型中协议数据单元(PDU)
  • 21 天 Python 计划:MySQL库相关操作
  • 深信服护网蓝初面试题
  • TYUTJava阶段测试
  • 番禺网站建设服务/百度招聘
  • 建设什么网站/怎么制作网页页面
  • 双鸭山网站建设企业/北京seo公司工作
  • 设计学校网站模板免费下载/新闻危机公关
  • 汕头网站建设备案/如何在百度上发布广告
  • 武汉高端网站定制设计/小果seo实战培训课程