首页
学习
活动
专区
工具
TVP
发布

c/c++

专栏成员
83
文章
8520
阅读量
14
订阅数
【C++深度探索】map与set的基础介绍与实用指南
  我们之前已经接触过STL中的部分容器,比如:vector、list、deque、forward_list(C++11)等,这些容器统称为序列式容器,因为其底层为线性序列的数据结构,里面存储的是元素本身。   而今天我们学习的map、set、multimap、multiset是关联式容器,关联式容器也是用来存储数据的,与序列式容器不同的是,其里面存储的是<key, value>结构的键值对,在数据检索时比序列式容器效率更高。   根据应用场景的不同,STL总共实现了两种不同结构的关联式容器:树型结构与哈希结构。树型结构的关联式容器主要有四种:map、set、multimap、multiset。这四种容器的共同点是:使用平衡搜索树(即红黑树)作为其底层结果,容器中的元素是一个有序的序列。下面依次介绍每一个容器。
大耳朵土土垚
2024-07-25
810
【C++深度探索】二叉搜索树的全面解析与高效实现
二叉搜索树(BST,Binary Search Tree)又称二叉排序树,是一种特殊的二叉树,它或者是一棵空树,或者是具有以下性质的二叉树:
大耳朵土土垚
2024-07-25
740
【C++深度探索】全面解析多态性机制(一)
在C++中,多态(Polymorphism)是指通过基类指针或引用来访问派生类对象的一种机制。简单来说,它允许我们在基类类型的指针或引用上调用派生类对象的成员函数。
大耳朵土土垚
2024-07-16
1020
【C++深度探索】全面解析多态性机制(二)
虚函数表(Virtual Function Table,VTable)是C++中实现动态多态性的一种机制。每个包含虚函数的类都有一个对应的虚函数表,用于存储该类的虚函数地址。
大耳朵土土垚
2024-07-16
870
深入探索C语言中的结构体:定义、特性与应用
在C语言中,结构体是一种用户自定义的数据类型,它允许开发者将不同类型的变量组合在一起,形成一个新的数据类型。结构体可以包含多个成员变量,每个成员可以是不同的数据类型,例如整型、字符型、浮点型等。
大耳朵土土垚
2024-07-11
650
【C++深度探索】继承机制详解(二)
基类定义了static静态成员,则整个继承体系里面只有一个这样的成员。无论派生出多少个子类,都只有一个static成员实例。
大耳朵土土垚
2024-07-11
770
掌握高效实用的VS调试技巧
编译型错误需要在编译前进行修复,通常会在编译器输出错误信息,指示出错的代码行数和具体错误信息,以帮助开发人员进行修复。
大耳朵土土垚
2024-07-11
640
【C++深度探索】继承机制详解(一)
继承(inheritance)机制是面向对象程序设计使代码可以复用的最重要的手段,它允许程序员在保持原有类特性的基础上进行扩展,增加功能,这样产生新的类,称派生类或子类。继承呈现了面向对象程序设计的层次结构,体现了由简单到复杂的认知过程。以前我们接触的复用都是函数复用,继承是类设计层次的复用。
大耳朵土土垚
2024-07-01
710
【C++】模板进阶
在初阶模板中,函数模板和类模板所传的参数前面都是class或者typename修饰的,是类类型形参,但是模板除了可以传递类类型形参之外还可以传递非类型形参
大耳朵土土垚
2024-06-08
640
【数据结构】筛选法建堆
给你一个顺序表或数组(一串数据),通常来说建堆有两种方法一种堆向上调整算法,一种堆向下调整算法建堆也就是筛选法建堆。
大耳朵土土垚
2024-06-06
1210
【C++】优先级队列介绍与模拟实现
优先级队列是一种特殊的队列,其中的元素都被赋予了优先级。元素的优先级决定了它们在队列中的顺序。在优先级队列中,元素按照优先级从高到低的顺序出队列。
大耳朵土土垚
2024-06-06
1000
【C++】STL:栈和队列模拟实现
C++中的stack(栈)和queue(队列)是两种常见的数据结构,用于存储和管理数据。
大耳朵土土垚
2024-06-04
880
【C++】List模拟实现
C++中的list是一种双向链表(doubly linked list)的实现。它是C++标准库中的一种容器,可以存储一系列元素,并且允许在任意位置插入、删除和访问元素。对于双向链表有疑问的可以点击查看数据结构——带头双向循环链表详解
大耳朵土土垚
2024-06-01
1260
【C语言】打造你的专属贪吃蛇
我们如果要在控制台上打印宽字符’●’或者’★’,汉字也是宽字符,就需要修改本地适配环境,在main函数中://修改适配本地的中文环境 setlocale(LC_ALL, "");,使用该函数要包含#include<locale.h> 头文件
大耳朵土土垚
2024-05-30
590
【C++】Vector的简易模拟与探索
此外范围for其实质上就是通过迭代器来实现的,所以我们写完了迭代器就可以使用范围for来遍历数据了,代码如下:
大耳朵土土垚
2024-05-28
760
【C++】学习string类:字符操作的艺术
C++的string类是用于处理字符串的标准库类。它定义在头文件中,并位于std命名空间下。C++的string类提供了一系列成员函数和操作符,用于操作和处理字符串。在使用string类时,必须包含#include头文件以及using namespace std; 详情可以点击链接查看——string类文档介绍
大耳朵土土垚
2024-05-24
840
【C++】 string类:应用与实践
💥个人主页:大耳朵土土垚的博客 💥 所属专栏:C++入门至进阶 这里将会不定期更新有关C++的内容,希望大家多多点赞关注收藏💖💖
大耳朵土土垚
2024-05-24
670
【C++】string类模拟实现:探索其内部机制
通过对string类的学习,我们知道string类的模拟实现最主要是实现string类的构造、拷贝构造、赋值运算符重载以及析构函数,以下是对模拟实现string类变量以及函数的封装:
大耳朵土土垚
2024-05-24
830
【C++】探索STL中的高效容器:vector
C++标准模板库(Standard Template Library,简称STL)是C++的一个库,提供了一组通用的模板类和函数,实现了常用的数据结构和算法。C++中的vector就是是标准模板库(STL)提供的一种容器。
大耳朵土土垚
2024-05-24
1040
【运筹学】前言:基础知识
线性代数是通过一系列的手段去”折腾“方程组,提取其系统信息; 而运筹学要解决一般视角下的最优化问题,寻求最好的解决办法,也就是寻找一般函数的最大最小值问题。 关于寻求最优解我们要记住两步: 第一步我们要数学建模,第二步求解这个数学模型
大耳朵土土垚
2024-05-24
490
点击加载更多
社区活动
【纪录片】中国数据库前世今生
穿越半个世纪,探寻中国数据库50年的发展历程
Python精品学习库
代码在线跑,知识轻松学
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
技术创作特训营·精选知识专栏
往期视频·千货材料·成员作品 最新动态
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档