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

C++11QT复习 (十四)

文章目录

    • Day9 数据结构学习笔记(2025.04.01)
      • 一、C++基础快速回顾
      • 二、STL(标准模板库)
      • 三、常见容器及其对应的数据结构
      • 四、容器操作演示
        • 1. 基本容器使用
        • 2. 异构类型容器
      • 五、迭代器详解
        • 特点
        • 示例
        • 用户自定义结构体访问成员
      • 六、算法库与排序演示
        • STL算法特点
        • 示例:排序
        • C++20 ranges(了解)
      • 七、完整测试代码
      • 八、总结

Day9 数据结构学习笔记(2025.04.01)

一、C++基础快速回顾

  • 内存模型
    • 栈(stack)与堆(heap)分配
    • 指针与引用(左值引用、右值引用、const 引用)
  • 类型系统
    • 内置类型与自定义类型
    • 构造与析构(RAII)
    • 拷贝与赋值(深拷贝/浅拷贝,共享/独占语义)
    • 移动语义(C++11)
    • 操作符重载
    • 继承与多态(虚函数、RTTI)
  • 模板
    • 泛型编程基础
    • 模板函数与模板类

二、STL(标准模板库)

STL由以下五个核心部分组成:

  1. 容器(Containers)
    • 存储和管理数据结构(如数组、链表、哈希表、树等)
    • 常见限制:不能使用引用类型或函数作为元素
  2. 迭代器(Iterators)
    • 提供统一方式访问容器元素
    • 本质行为类似指针(重载 *, ->, ++, -- 等)
  3. 算法(Algorithms)
    • 提供常见操作如排序、查找、复制、删除等
    • 与容器无关,仅依赖迭代器
  4. 函数对象与适配器
    • std::less,可定制算法行为
  5. 工具类与API封装
    • 如智能指针、时间、线程、文件系统等

三、常见容器及其对应的数据结构

容器 数据结构 特点
std::array 固定大小数组 编译期大小,栈分配
std::vector 动态数组 支持随机访问,自动扩容
std::forward_list 单向链表 内存使用少,不能反向遍历
std::list 双向链表 可双向遍历,插入删除效率高
std::set/map 红黑树(有序) 元素有序,插入删除O(logn)
std::unordered_set/map 哈希表(无序) 查询效率高,O(1)平均复杂度
std::stack 栈(适配器) LIFO,默认基于deque实现
std::queue 队列(适配器) FIFO,默认基于deque实现
std::priority_queue 堆(适配器) 默认大顶堆
std::deque 双端队列 头尾高效插入删除
std::tuple / std::pair 异构数据结构 用于存储不同类型的多个值

四、容器操作演示

1. 基本容器使用
std::array<int, 10> arr = {
   };      // 固定数组
std::vector<int> vec;              // 动态数组
std::forward_list<int> flist;      // 单向链表
std::list<int> dlist;              // 双向链表
std::set<int> s;                   // 红黑树(有序)
std::unordered_set<

相关文章:

  • Qt中的元对象系统
  • 基于chatgpt得到的生活成本计算
  • 开源免费虚拟化软件PVE功能介绍
  • 服务器报错:xxx/libc.so.6: version `GLIBC_2.32‘ not found
  • 软件工程第二章
  • STM32 基础2
  • 华为交换机上配置流量策略根据IP限速
  • CentOS安装Docker
  • 005 vue项目结构 vue请求页面执行流程(vue2)
  • Spring IoCDI
  • tomcat的负载均衡和会话保持
  • 微信小程序生成某个具体页面的二维码
  • JVM基础架构:内存模型×Class文件结构×核心原理剖析
  • 算法刷题记录——LeetCode篇(2.6) [第151~160题](持续更新)
  • 使用ExcelJS实现专业级医疗数据导出功能:从数据到Excel报表的完整指南
  • vscode调试vite项目断点(debugger)
  • 基于HAI应用,从零开始的NLP处理实践指南
  • 【区块链安全 | 第三十一篇】合约(五)
  • CVAT及其半自动标注安装(Windows)
  • SYN Flooding攻击原理
  • 网文书单|推荐4本网文,可以当作《绍宋》代餐
  • 经济日报:人工智能开启太空经济新格局
  • 女排奥运冠军宋妮娜:青少年保持身心健康才能走得更远
  • 六省会共建交通枢纽集群,中部离经济“第五极”有多远?
  • 俄乌官员即将在土耳其会谈,外交部:支持俄乌开启直接对话
  • 英德宣布开发射程超2000公里导弹,以防务合作加强安全、促进经济