logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

C++中 std::vector (动态数组容器)、std::array(静态数组封装)深入解析

是连续内存数组,size 和 capacity 分开管理push_back会触发扩容和拷贝,性能可能下降reserve()→ 减少扩容次数→ 避免临时对象拷贝遍历尽量使用引用传参用const引用通过这些优化,vector可以在保证简洁代码的同时,接近手写数组的性能。

文章图片
#c++#开发语言
C++ 函数指针、回调与 Lambda 全解析

在学习 C++ 的过程中,函数指针常常让人觉得“古老又晦涩”。这样,我们就可以在运行时决定到底调用哪个函数,从而让代码更灵活。本文会结合实例代码,从函数指针讲到 Lambda 和,最后总结适用场景。

文章图片
#c++#开发语言
C++17 新特性:std::any —— 存放任意类型的容器

std::any的设计目标是让 C++ 拥有类似动态语言的灵活性但它并不是为通用场景准备的万能解法。结论:当你确实无法预知类型时(如反射、通用容器、脚本接口),使用std::any。当类型可预测或有限时,优先选择,性能更高、类型更安全。

文章图片
#c++#开发语言
C++17 新特性:std::variant —— 类型安全的多类型容器

是 C++17 引入的一个极其强大的类型工具,它本质上是受控的多态,让你能安全、清晰地表达“一个对象可能是几种类型之一”的概念。操作功能定义多类型容器获取指定类型的值(类型不匹配则抛异常)获取指定类型的指针(类型不匹配返回空)v.index()当前存储类型索引对当前存储类型执行函数定义“空状态”类型错误访问异常。

文章图片
#c++#安全
【C++进阶】从零实现一个支持动态扩容的 Vector 容器(含移动语义与内存管理详解)

相较于Array(静态数组),Vector的最大特点就是动态扩容。我们无需在创建时指定固定容量,可以在运行时以O(1)的摊销复杂度不断地向尾部插入元素,同时仍然保持随机访问的 O(1) 时间复杂度。阶段功能关键技术基础版动态扩容普通new[]Move版高效移动移动语义std::moveEmplace版原地构造最终版完整内存控制+ 手动析构至此,我们完成了一个功能齐全的简易版。

文章图片
#c++#开发语言
C++ STL 容器 :详解 std::set 与 std::unordered_set

/ 降序排列// 输出 3 2 1operator==(判断两个键是否相等)哈希函数(生成哈希值)int a, b;必须同时定义operator==与哈希函数,否则无法正确区分相同键。int a, b;容器优点缺点典型用途std::set自动排序,稳定迭代器插入删除较慢排序集合、范围查询查找插入快,空间效率高无序,迭代器易失效快速查找、去重操作。

文章图片
#c++#开发语言
C++ 容器详解:std::list 与 std::forward_list 深入解析

std::list和都是 C++ STL 中的链表容器,用于存储动态大小的元素集合。特性std::list链表类型双向链表单向链表插入/删除效率任意位置 O(1)任意位置 O(1)随机访问不支持不支持内存占用较高(每个节点包含前后指针)较低(仅有后继指针)适用场景需要频繁中间插入/删除内存敏感且仅需单向遍历容器优点缺点适用场景std::list插入/删除高效,支持双向遍历内存占用高,不支持随机访问

文章图片
#c++#list#开发语言
U-Boot

分区表描述存储设备(eMMC、NAND、SD卡)上各区域的位置和大小,为U-Boot提供寻址依据(如内核在哪个分区、设备树在哪个分区)。常见分区信息包括:分区名称、起始地址、大小、文件系统类型、分区编号。因此需要分阶段加载,先用小体积的SPL初始化DDR,再将完整的U-Boot加载到DDR中运行。重定位的目的:将U-Boot放到DDR的高端地址,把低端内存留给内核使用,避免地址冲突。分区表本身不直

文章图片
#嵌入式硬件#arm开发
C++中的构造函数、析构函数、虚析构函数详与继承详解

摘要:C++中构造函数和析构函数是类的重要成员,分别负责对象初始化和资源清理。构造函数在对象创建时自动调用,可重载不同版本;若未定义,编译器会生成默认构造函数(但不会初始化成员)。析构函数在对象销毁时调用,用于释放资源。栈对象自动调用析构,堆对象需手动delete。继承实现类层级关系,子类继承父类非私有成员,并可重写方法,体现面向对象特性。合理使用这些特性可提高代码复用性和安全性。

文章图片
#c++#开发语言#算法
C++中 std::vector (动态数组容器)、std::array(静态数组封装)深入解析

是连续内存数组,size 和 capacity 分开管理push_back会触发扩容和拷贝,性能可能下降reserve()→ 减少扩容次数→ 避免临时对象拷贝遍历尽量使用引用传参用const引用通过这些优化,vector可以在保证简洁代码的同时,接近手写数组的性能。

文章图片
#c++#开发语言
    共 23 条
  • 1
  • 2
  • 3
  • 请选择