news 2026/5/26 23:19:58

C++ 第十三章第十四章 案例教程

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
C++ 第十三章第十四章 案例教程

C++ 第十三章&第十四章 案例教程

说明:本教程承接前十二章。第十三章聚焦STL进阶(容器适配器、优先级队列、算法复杂度、仿函数、无序容器),第十四章讲解多线程编程(thread、mutex、async、future、atomic)。通过“任务调度系统”和“并行计算器”实战串联所有知识点。


第一部分:第十三章 STL进阶

一、背景故事:小杨需要优先级队列和更高效的查找

小杨的图形绘制系统运行良好,但他希望实现一个任务队列:根据任务优先级,总是执行最重要的任务。同时,他需要快速在海量数据中查找元素,希望使用哈希表(unordered_map)。于是他开始深入学习STL的高级组件。

二、容器适配器

容器适配器是基于底层容器(如deque、vector、list)实现的特殊接口。

2.1 stack(栈)

后进先出(LIFO)。默认基于deque。

#include<stack>stack<int>s;s.push(1);s.push(2);s.pop();// 弹出2inttop=s.top();// 1

2.2 queue(队列)

先进先出(FIFO)。默认基于deque。

#include<queue>queue<int>q;q.push(1);q.push(2);q.pop();// 弹出1intfront=q.front();// 2

2.3 priority_queue(优先队列)

最大值总是在顶部,默认使用<比较(最大堆)。

#include<queue>priority_queue<int>pq;// 最大堆pq.push(3);pq.push(1);pq.push(4);cout<<pq.top()<<endl;// 4pq.pop();// 最小堆priority_queue<int,vector<int>,greater<int>>minHeap;minHeap.push(3);minHeap.push(1);minHeap.push(4);cout<<minHeap.top()<<endl;// 1

自定义比较仿函数:

structTask{intpriority;string name;// 自定义比较:优先级高的在堆顶(注意是 less 逻辑)booloperator<(constTask&other)const{returnpriority<other.priority;// 最大堆需要这样写}};priority_queue<Task>taskQueue;taskQueue.push({3,"写报告"});taskQueue.push({1,"回复邮件"});taskQueue.push({5,"修复bug"});cout<<taskQueue.top().name<<endl;// 修复bug

三、无序关联容器(哈希表)

C++11 提供了基于哈希的容器:unordered_set、unordered_map,平均O(1)查找。

#include<unordered_map>#include<unordered_set>unordered_map<string,int>scores;scores["张三"]=95;scores["李四"]=87;if(scores.find("张三")!=scores.end()){cout<<"张三分数: "<<scores["张三"]<<endl;}unordered_set<int>nums={1,2,3,4,5};nums.insert(6);nums.erase(3);

自定义哈希(为自定义类型):

structPoint{intx,y;booloperator==(constPoint&<
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/22 9:03:13

G-Helper:华硕笔记本的轻量级性能管家,让你的电脑重获新生

G-Helper&#xff1a;华硕笔记本的轻量级性能管家&#xff0c;让你的电脑重获新生 【免费下载链接】g-helper Lightweight Armoury Crate alternative for Asus laptops with nearly the same functionality. Works with ROG Zephyrus, Flow, TUF, Strix, Scar, ProArt, Vivobo…

作者头像 李华
网站建设 2026/5/22 9:01:04

工控采集专用 10CL080YU484I7G 宽温稳定耐造 联诠电子

10CL080YU484I7G&#xff08;Intel Cyclone 10 LP FPGA&#xff09;定位&#xff1a;28nm 低功耗、中规模、工业级、高性价比 FPGA&#xff0c;主打 “低功耗 宽温 低成本”。✅ 核心特点工艺与资源28nm 低功耗&#xff08;LP&#xff09;工艺&#xff0c;核心电压1.2V。逻辑…

作者头像 李华
网站建设 2026/5/22 8:59:04

罗技鼠标宏终极指南:PUBG完美压枪解决方案

罗技鼠标宏终极指南&#xff1a;PUBG完美压枪解决方案 【免费下载链接】logitech-pubg PUBG no recoil script for Logitech gaming mouse / 绝地求生 罗技 鼠标宏 项目地址: https://gitcode.com/gh_mirrors/lo/logitech-pubg 还在为《绝地求生》中难以控制的武器后坐力…

作者头像 李华
网站建设 2026/5/22 8:54:59

视觉检测中特征提取的FPGA加速技术【附程序】

✨ 长期致力于视觉检测、FPGA并行结构设计、位宽优化、异构处理、数据流接口研究工作&#xff0c;擅长数据搜集与处理、建模仿真、程序编写、仿真设计。 ✅ 专业定制毕设、代码 ✅ 如需沟通交流&#xff0c;点击《获取方式》 &#xff08;1&#xff09;多层次并行FPGA结构设计及…

作者头像 李华
网站建设 2026/5/22 8:51:04

ARM指令集架构与编码优化实战指南

1. ARM指令集架构概述在嵌入式系统和移动计算领域&#xff0c;ARM架构凭借其出色的能效比占据了主导地位。作为ARMv7-A架构的核心组成部分&#xff0c;T32&#xff08;Thumb-2&#xff09;和A32&#xff08;ARM&#xff09;指令集为开发者提供了两种互补的编程模型。我曾参与过…

作者头像 李华