logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

【C++】STL基础必备:深入解析vector容器的实现(含源码)

本文详细解析了C++ STL中vector的实现原理与核心接口。文章首先介绍了vector的底层结构,通过分析STL源码指出vector使用三个指针成员(_start、_finish、_endofstorage)来管理动态数组。随后依次实现了vector的容器相关接口(size、capacity、empty)、元素访问接口(operator[]、at、front、back)、迭代器接口以及修改接口

文章图片
#c++#开发语言#c语言 +2
【C++】编程必备:深入解析vector容器的使用

本文介绍了C++中vector容器的基本使用方法和常用接口。主要内容包括: vector简介:vector是一个类似于顺序表的类模板,属于STL库,比string更加灵活规范。 构造与析构: 默认构造不初始化底层数组 支持n个value构造和initializer_list初始化 拷贝构造和赋值重载采用深拷贝 元素访问接口: 支持[]运算符和at()访问元素 front()和back()分别获取首

文章图片
#c++#开发语言#面试 +3
【C++】编程必备:深入解析仿函数与std::sort

本文介绍了C++中仿函数的概念与应用。仿函数本质是重载了operator()的类,使其对象可以像函数一样调用。文章首先通过加法仿函数示例展示了两种使用方法:实例化对象调用和使用匿名对象调用。随后介绍了标准库中的常见仿函数greater和less,以及它们在sort排序算法中的应用。最后讨论了自定义类型排序场景,指出当处理复杂类型时需要手动实现仿函数,并以日期类为例说明了如何重载比较运算符来实现自定

文章图片
#c++#java#开发语言 +3
【C++】编程必备:深入解析stack和queue的使用和实现(附源码)

本文介绍了栈(stack)和队列(queue)的基本使用与实现。首先通过示例代码演示了stack和queue的常用接口操作,如push、pop、top等。然后讲解了容器适配器的概念,指出stack和queue是基于其他容器(如vector、deque)实现的特殊容器。重点详细讲解了stack的实现过程,包括使用vector作为底层容器,封装empty、size、push、pop等接口,并提供了完整

文章图片
#c++#开发语言#c语言 +2
【C++】编程必备:深入解析priority_queue的使用与实现

本文介绍了C++中priority_queue(优先级队列)的基本概念、使用方法和初步实现。priority_queue本质上是一个堆数据结构,默认实现为大堆(降序排列),通过传入greater仿函数可改为小堆(升序排列)。文章详细讲解了priority_queue的接口使用,包括push、pop、top等操作,并给出了堆排序的示例代码。在实现部分,作者逐步构建了priority_queue的基本

文章图片
#c++#开发语言#算法 +2
【C++】多态详解——虚函数、重写、原理、抽象类(超详细)

本文深入讲解C++多态的核心概念与实现原理,主要内容包括: 多态概念:同一操作在不同对象上产生不同结果,分为静态多态(编译时)和动态多态(运行时) 实现条件: 必须通过基类指针/引用调用虚函数 被调函数必须是虚函数且子类完成重写 关键机制: 虚函数(virtual修饰) 虚函数重写(函数签名完全相同) 虚表指针(_vfptr)和虚函数表 重要特性: 析构函数必须声明为虚函数以避免内存泄漏 over

文章图片
#c++#java#开发语言 +4
【C++】STL基础必备:深入解析list容器的使用

本文介绍了C++ STL中list容器的基本使用方法和特性。list是一个双向带头循环链表的类模板,与vector相比具有不同的底层实现但相似的接口。文章详细讲解了list的默认构造、普通构造、拷贝构造等成员函数,以及元素访问、容量查询、迭代器使用等接口。重点演示了push_back/pop_back、push_front/pop_front等修改操作,并通过代码示例展示了insert方法在指定位

文章图片
#c++#list#开发语言 +3
【C++】STL基础必备:深入解析list容器的实现(含源码)

本文详细介绍了C++ STL中list容器的底层实现。首先分析了list的双向循环链表结构,包括节点定义和list类的基本框架。然后讲解了默认成员函数的实现,包括构造、拷贝构造、赋值重载和析构函数。重点阐述了list迭代器的特殊实现方式,通过封装节点指针并重载运算符来模拟指针行为,解决了链表节点不能直接解引用和++的问题。文章还提供了普通迭代器和const迭代器的实现思路,为理解STL容器的底层机

文章图片
#c++#list#windows +4
【C++ 进阶】模板核心:非类型参数、特化、分离编译

模板是给通用类型用的,但是某些特定类型,按照默认模板逻辑会出错,这时候我们就需要特殊处理,这就叫模板特化这个模板对于int、double、自定义类型都没问题,但是如果传入指针呢?可能我们的原意是比较指针指向的内容,但是这里比较的是指针地址,不是指针指向的内容!结果完全错了,这时候,我们就需要对Date*类型特化.h文件放声明.cpp文件放实现最后链接到一起普通函数这样写完全没问题,但模板不行!复用

文章图片
#c++#java#开发语言 +3
【初阶数据结构和算法】八大排序算法之插入排序(直接插入排序、希尔排序及其对比)

方法就是,记录下来end+1位置的数据,因为end是左边有序的序列的最后一个数据,那么end+1自然就是右边待排序序列的第一个数据,我们要将end+1这个位置的数据插入到左边的有序序列中,首先就是将它用变量tmp记录下来,它就是我们要往左边有效序列中插入的数据。这也正是我们直接插入排序的算法思想,将所有的数据分成两部分,左边就是已经排好序的数据,右边则是待排序数据,就是我们上面扑克牌的思想,随后我

文章图片
#排序算法#算法#数据结构 +4
    共 17 条
  • 1
  • 2
  • 请选择