首页 > 编程语言 >c++ STL源码解读

c++ STL源码解读

时间:2023-11-03 11:33:54浏览次数:33  
标签:map STL c++ 源码 key include 添加 节点

红黑树

map,key不能添加相同的key,如果添加不会报错,但是添加不进去

 

#include <iostream>
#include <map>
#include <set>
using namespace std;
int main(int argc, char const *argv[])
{
    map<int,int> a ;
    a.insert(make_pair(1,1));
    a.insert(make_pair(1,2));
    for (const auto& [key, value] : a) {
        cout << "Key: " << key << ", Value: " << value << endl;
    }
}

输出结果为 Key: 1, Value: 1

map中at取没有的key会编译通过运行时抛出异常,map[]没有值不会抛出异常会返回一个值0

迭代器 ++

因为上图中的平衡二叉树的实现是中序遍历(左根右)

 

 1.如果是8下一个节点是10

2.如果是5下一个节点就是6

3.如果是7下一个节点就是8

 

散列表

 

标签:map,STL,c++,源码,key,include,添加,节点
From: https://www.cnblogs.com/xiaoruirui/p/17807230.html

相关文章

  • HashMap源码详解
    HashMap简介HashMap是Java语言中的一种集合类,它实现了Map接口,用于存储Key-Value对。它基于哈希表数据结构,通过计算Key的哈希值来快速定位Value的位置,从而实现高效的插入、删除和查找操作。下面我们对照着JAVA1.8中的HashMap源码来分析一下它的内部实现逻辑基本的结构在开始分析......
  • 基于微信小程序的仓储管理系统_-计算机毕业设计源码+LW文档
    摘 要随着科学研究的不断深入,有关仓储的各种信息量不断成倍增长。面对庞大的信息量,就需要有仓储管理系统来提高管理工作的效率。通过这样的系统,我们可以做到信息的规范管理和快速查询,从而减少了管理方面的工作量。 建立仓储管理系统,进一步提高用户对仓储信息的查询。帮助管理......
  • Selenium 4.0beta:读源码学习新功能
    Selenium4源码分析这一篇文章我们来分析Selenium4python版源码。除非你对Selenium3的源码烂熟于心,否则通过对比工具分析更容易看出Selenium4更新了哪些API。文件对比工具推荐BeyondCompare驱动支持Selenium4去掉了android、blackberry和phantomjs等驱动支持。Selenium......
  • Spring/SpringBoot中的声明式事务和编程式事务源码、区别、优缺点、适用场景、实战
    一、前言在现代软件开发中,事务处理是必不可少的一部分。当多个操作需要作为一个整体来执行时,事务可以确保数据的完整性和一致性,并避免出现异常和错误情况。在SpringBoot框架中,我们可以使用声明式事务和编程式事务来管理事务处理。其中事务的坑也是不少,比较常见的就是事务失效,大家......
  • C++ 移动构造函数详解
    目录移动构造函数是什么?复制构造和移动构造对比改进的拷贝构造移动构造实现移动构造优点左值、右值、左值引用、右值引用std::move参考移动构造函数是什么?移动构造是C++11标准中提供的一种新的构造方法。先举个生活例子,你有一本书,你已经不想看了,但我非常想看,那么我有哪......
  • 基于Android的记录生活APP-计算机毕业设计源码+LW文档
    摘 要近些年来,随着科技的飞速发展,互联网的普及逐渐延伸到各行各业中,给人们生活带来了十分的便利,记录生活信息利用计算机网络实现信息化管理,使整个记录生活管理的发展和服务水平有显著提升。本文拟采用Android平台进行开发,使用java技术和Springboot搭建系统框架,后台使用MySQL数......
  • C++_点云和C++函数处理
    点云问题原始点云拼接-运动畸变是指在一帧时间内,激光雷达或者其载体在发生运动后,产生的点云位置不一样的问题点云是没有畸变的,每条激光线束最终会形成一个闭合的圆形===利用运动模型来做运动畸变补偿和ICP方式这些数据包进行点云组帧激光雷达重叠区域......
  • 基于Android的XX校园交流-计算机毕业设计源码+LW文档
    摘  要随着互联网时代的发展,传统管理技术已无法高效,便捷地管理信息。为了迎合时代需求,优化管理效率,各种各样的管理系统应运而生,随着各行业的不断发展,XX校园交流APP建设也逐渐进入了信息化的进程。这个App的设计主要包括前台页面的设计和方便用户互动的后端数据库,而前端软件的......
  • c++ 程序打印 core dump 信息
    linux环境下c++程序打印coredump信息linux信号机制c++打印堆栈信息#include<signal.h>#include<execinfo.h>#include<dlfcn.h>#include<cxxabi.h>#include<QFile>#include<QTextStream>//捕获信号,对于这些信号都执行coreDumpHandlesignal(SIG......
  • 【宝藏工具】开源组件信息一键查询,快速获取组件来源、版本、源码地址、漏洞补丁、推荐
    铁子们,分享一个开源组件安全检索免费工具,需要的自取~输入组件名,一键查询可以组件版本、来源、安全状态、漏洞详情和推荐版本、修复建议这些。点这个链接注册后直接就能用:组件安全检索工具 一键查询第三方组件版本、漏洞、所属国家、所属语言、源码链接等:查看漏洞详情:......