移动应用开发实验室25级期末考核

【管理科学】第三十五篇 企业经营中的管理科学01 权力、风险、运营、物流、人力资源、库存、合同、品牌、业绩、项目 编号类型领域子领域/内容问题问题的数学分析(电磁/信息论/数学物理/数学化学/界面科学/表面科学 + 几何/拓扑/代数/集合论/图论/数论/函数评估/数值估计/概率/统计/向量/张量/矩阵/矢量 + 其他)算法逐步推理思考的数学表达式及实现步骤及时序流程 参数列表及参数的数值范围及数值分析及常量/常数1管理科学问题运营管理生产计划如何分配有限资源生产多种产品以最大化利润?线性代数、凸优化、单纯形法;向量与矩阵目标函数 max c^T x,约束 Ax ≤ b, x ≥ 0。步骤:①标准化引入松弛变量;②构建初 阅读详情

一、 链表的基本操作

链表结点结构体的数据域包含:姓名、英雄稀有度。

链表输入以下数据:

斯派克 S

阿方 A

斯图 B

该链表应该实现的功能:

  1. 通过姓名查找英雄稀有度
  2. 通过姓名删除信息
  3. 通过姓名修改英雄稀有度
  4. 将链表保存至文件中
  5. 从文件中读出信息并以链表形式储存(以文本文件的形式)

创建英雄节点类

  1. 包含行姓名, 稀有度, 下一个节点的指针
// 英雄节点类
class ListNode { 
public: 
    string name; 
    char rarity; 
    ListNode* next; 
    ListNode(string name = "", char r = {}) : name(name), rarity(r), next(nullptr) {} 
}; 

创建英雄节点类

包含头节点, 以及各种功能函数

class heroList {
public: 
    ListNode* head; 
public: 
    // 构造函数
    heroList() : head(nullptr) {}
}

插入节点

    // 插入节点
    void insertAtTail(string name, char rarity) { 
        ListNode* node = new ListNode(name, rarity); 
        if (head == nullptr) {
            head = node; 
        } else {
            ListNode* curr = head; 
            while (curr->next != nullptr) {
                curr = curr->next; 
            } 
            curr->next = node; 
        }
    }

通过姓名查看熟练度

  1. 从头节点开始遍历链表
  2. 如果遇到某个节点的姓名是要查询的姓名,就打印该英雄的稀有度
  3. 如果一直到链表末尾都没有找到,就打印 “没有找到”;
    // 通过姓名查看熟练度
    void search(string name) {
        ListNode* curr = head; 
        while (curr != nullptr) { 
            if (curr->name == name) {
                cout << name << "的熟练度为" << curr->rarity << endl; 
                return; 
            }
            curr = curr->next; 
        } 
        cout << "没有找到" << endl; 
    } 

通过姓名删除信息

  1. 从头节点开始遍历链表
  2. 如果遇到某个节点的下一个节点的姓名是要删除的姓名
  3. 就删除当前节点的下一个节点
  4. 如果没有找到,说明该英雄没有在链表中,直接返回即可;
    // 删除英雄
    void remove(string name) {
        ListNode* dummy = new ListNode(); 
        dummy->next = head; 
        ListNode* curr = dummy; 
        while (curr->next != nullptr) {
            if (curr->next->name == name) {
                ListNode* temp = curr->next; 
                curr->next = temp->next; 
                delete temp; 
                break; 
            }  
            curr = curr->next; 
        } 
        head = dummy->next; 
        delete dummy; 
    }

通过姓名修改英雄稀有度

  1. 从头节点开始遍历链表
  2. 如果遇到某个节点的姓名是要修改的姓名,就将该英雄的稀有度修改
  3. 如果一直到链表末尾都没有找到,就打印 “没有找到”;
    // 通过姓名修改稀有度
    void modify(string name, char rarity) {
        ListNode* curr = head; 
        while (curr != nullptr) {
            if (curr->name == name) { 
                cout << "已将" << name << "的熟练度改为" << rarity << endl; 
                curr->rarity = rarity; 
                return; 
            }
            curr = curr->next; 
        } 
        cout << "没有找到" << endl; 
    } 

将链表保存到文件

  1. 打开文件(如果没有,)
  2. 从头开始遍历链表
  3. 将每一个节点的数据写入文件
  4. 关闭文件
    // 将链表保存到文件中
    void saveToFile(char* filename) {
        FILE* pf = fopen(filename, "w"); 
        if (pf == nullptr) {
            cout << "文件打开失败\n" << endl; 
            return; 
        }  
        ListNode* curr = head;  
        while (curr != NULL) {
            fprintf(pf, "%s %c\n", curr->name, curr->rarity);  
            curr = curr->next; 
        } 
        fclose(pf);  
        pf = nullptr;  
        cout << "数据已保存到文件" << endl; 
    }  

从文件中读出信息并以链表形式储存

  1. 打开文件
  2. 创建虚拟头节点dummy,
  3. 循环将文件中的数据读入到节点中
  4. 再通过尾插的方法将节点插入到链表中
    // 从文件中读取数据并创建链表
    ListNode* loadFromFile(char* filename) {
        FILE* pf = fopen(filename, "r"); 
        if (pf == nullptr) {
            cout << "文件打开失败\n" << endl;  
            return nullptr; 
        } 
        char name[100]; 
        char rarity; 
        ListNode* dummy = new ListNode(); 
        ListNode* curr = dummy; 
        while (fscanf(pf, "%s %c", name, &rarity) == 2) {
            // 创建新节点
            ListNode* newNode = new ListNode(name, rarity); 
            curr->next = newNode; 
            curr = curr->next; 
        }  
        fclose(pf); 
        cout << "数据已从文件中读取"  << endl; 
        ListNode* temp = dummy->next; 
        delete dummy; 
        return temp; 
    }

说说你理解的大小端,现代电脑一般是大端存储还是小端存储?

大小端指的是多字节数据在内存中存储的字节顺序。

  • 大端模式:高位字节存储在低地址,低位字节存储在高地址
  • 小端模式:低位字节存储在低地址,高位字节存储在高地址

现代电脑一般是小端存储

文件操作中“流”的概念是什么?以读取文本文件为例,C语言如何进行文件操作?

流是数据在程序和外部设备(如文件、终端、网络等)之间流动的抽象概念。

可以把流想象成一条"数据河流":

  • 源头:数据从哪里来(文件、键盘等)
  • 目的地:数据到哪里去(文件、屏幕等)
  • 水流:数据字节的连续传输

C语言文件操作:

  1. 创建FILE* 指针, 用fopen打开文件,(“w” “r” "a"只读, 只写,追加)
  2. 检查文件是否成功打开
  3. 操作文件(写入文件(fprintf),读文件(fscanf))
  4. 关闭文件(fclose())
  5. 将文件指针变为空,避免指针悬空

算法题

LCR 089. 打家劫舍 - 力扣(LeetCode)

在这里插入图片描述

  1. 如果只有一间房间,最高金额就是第一间房间中的金额
  2. 如果有两间房间,最高金额就是第一间房间和第二间房间金额最大者
  3. 创建dp数组,用来存储第 i 间房可以盗窃到的最高金额
  4. 递推公式: 若 i > 1 ; dp[i] = max(dp[i - 2] + nums[i], dp[i - 1]);
class Solution {
public:
    int rob(vector<int>& nums) { 
        if (nums.empty()) {
            return 0; 
        }
        int len = nums.size();  
        if (len == 1) {
            return nums[0]; 
        }
        vector<int> dp(len, 0); 
        dp[0] = nums[0]; 
        dp[1] = max(nums[0], nums[1]);  
        for (int i = 2; i < len; i++) {
            dp[i] = max(dp[i - 2] + nums[i], dp[i - 1]); 
        } 
        return dp[len - 1]; 
    }
};

23. 合并 K 个升序链表 - 力扣(LeetCode)

在这里插入图片描述

  1. 要合并k 个升序链表,可以先写出合并两个升序链表的函数
  2. 然后遍历链表数组,将每一个数组和后一个链表合并,再用合并后的新链表去和后面的链表合并
class Solution {
public: 
    // 合并两个升序链表
    ListNode* mergeTwo(ListNode* list01, ListNode* list02) { 
        if (list01 == nullptr) {
            return list02; 
        } 
        if (list02 == nullptr) {
            return list01; 
        }
        ListNode* l1 = list01; 
        ListNode* l2 = list02; 
        ListNode* result  = new ListNode(); 
        ListNode* curr = result; 
        while (l1 != nullptr && l2 != nullptr) {
            if (l1->val <= l2->val) {
                curr->next = l1; 
                l1 = l1->next; 
            } else if (l1->val > l2->val) {
                curr->next = l2; 
                l2 = l2->next; 
            }
            curr = curr->next; 
        } 
        if (l1 == nullptr) {
            curr->next =l2; 
        } else {
            curr->next =l1; 
        } 
        return result->next; 
    }
    
    ListNode* mergeKLists(vector<ListNode*>& lists) {
        int len = lists.size(); 
        if (len == 1) {
            return lists[0]; 
        } 
        
        ListNode* result = nullptr; 
        for (int i = 0; i < len; i++) {
            result = mergeTwo(result, lists[i]); 
        } 
        return result; 
    }
};

3. 无重复字符的最长子串 - 力扣(LeetCode)

给定一个字符串 s ,请你找出其中不含有重复字符的 最长 子串 的长度。

  1. 使用双指针(滑动窗口)
  2. 定义result来存储最大长度
  3. 定义curr来记录当前窗口的长度
  4. 创建unordered_set 来记录窗口中已经存在的元素
  5. 如果右指针遍历到的元素不在窗口中,就更新当前窗口的长度,将新的元素加入到当前窗口中
  6. 如果遍历到一个新的元素且窗口中已经有相同的元素
  7. 那就移动左指针,并将左指针的元素移出当前窗口,同时更新当前窗口的长度,直到将与新元素相同的元素移出窗口, 然后将当前元素加入到窗口中
  8. 最后更新result
class  Solution { 
public:
    int lengthOfLongestSubstring(string s) {
        int curr = 0; 
        int result = 0;  
        char set[1000] = {0}; 
        int left = 0;  
        int len = s.size(); 
        for (int i = 0; i < len; i++) { 
            if (set[s[i]] == 0) {
                set[s[i]] = 1; 
                curr++;  
            } else {
                while (set[s[i]] == 1) { 
                    set[s[left++]] = 0;  
                } 
            }  
            result = max(curr, result); 
        }
        return result; 
    }
}; 
C++笔记之类模板、函数模板、可变参数模板、模板特化 内容关键点函数模板编译器根据实参推导类型,推导冲突时用<>显式指定类模板每个不同的类型参数生成一个独立的类,C++17 起支持实参推导可变参数模板声明、args...展开、sizeof...计数,C++17 可用折叠表达式模板特化全特化写,偏特化只限类模板,不需要继承符号模板与继承依赖型基类要用this->或using,类型前要加typename。 阅读详情

相关推荐

Android天气App课程设计:3天快速开发可演示高分作业

Android应用开发是移动编程教学的核心实践环节,其本质是掌握Activity生命周期、UI组件渲染(如RecyclerView)、HTTP网络请求与JSON数据解析等基础能力。这些技术点构成移动应用的数据获取—处理—展示完整链路,具有强工程通用性与教学验证价值。在高校《Android程序设计》等课程中,学生需规避权限崩溃、网络异常、UI适配等典型运行时问题,通过最小可行结构(Empty Activity+ConstraintLayout)实现功能闭环。本文以深圳天气预报App为例,详解如何基于Open-

weixin_32247165的博客 172

从零开始的C++生活——第四讲

看到了吧,这其实是两个函数,也就是说,函数模板的原理是根据预定模板生成对应函数,本来这个工作是你来完成的,但是由于工作比较简单,就交给编译器了,本质不变,仍然是两个函数,只是省事且不冗余,代码观感更好。模板之于C++有着举足轻重的作用,以往我们写个Swap函数写个Add函数,你由于不同类型的考量需要写一堆,C++即使有重载也十分麻烦,明明大家都是干着差不多的任务,却要写好多次,代码十分冗余,模板就是来解决这个问题的。我可以很明确的告诉你,如果你调试,进的都是这个函数,那能证明这俩是一个函数吗?

dshswra的博客 183

Android天气App开发实战:从权限获取到Retrofit网络请求

Android应用开发中,网络请求与运行时权限管理是基础且高频的技术环节。其核心原理在于遵循系统生命周期进行资源调度,通过Retrofit等现代网络库实现类型安全、可调试的HTTP通信,并结合ActivityResultLauncher规范处理位置等敏感权限。该技术组合不仅提升应用稳定性与可维护性,更支撑起天气类、LBS类等典型场景的功能闭环。本文以和风天气API接入为例,详解从定位获取、JSON解析、状态更新到异常反馈的完整链路,覆盖高校移动开发课程中对工程规范性、调试可见性与报告可验证性的关键考核要求。

weixin_32715349的博客 169

同位素下篇:氘、氚、氦-3、聚变燃料循环的 C/M/P 预研——从「氦-3 不是批量燃料」到「氚自给是硬约束」

聚变燃料循环的第一原则,不是「增益」,是「自给」。增益可以降档,自给不能假装。氦-3 不是批量燃料,氚自给是硬约束。氘、氚、氦-3 这条线,用 C/M/P + R1–R7 扫:R1(地球 ³He 供给不闭合,45–192 个增殖堆供 1 个燃烧堆)、R3(氚自给参数未实测锁定)、R5(战略副产品 0.89–3.82 kg/年/单位 外推 170.2 kg/fpy 的批量燃料)、R6(24 h 储备即不可接受;三条硬门不过则整链 ∅_safe)、R7(月球连续流程未演示,没有第三条已铺好的通道)。

Liaiyang66的博客 338

Simscape Multiboby学习笔记1——跟着官网学Multibody

文章目录一. 引言二. Simscape Multibody自学之路三. 本教程的目录 一. 引言 最近在倒腾Matlab的动力学仿真,起因是看到有人推荐Matlab的multbody模块,一经了解之下简直惊为天人。作为一名Matlab的小粉,看到这么好用的模块简直不要太开心,之前用simulink搭飞行器的仿真模型,虽然能够仿真看到六自由度位移,毕竟不能可视化,还是很不够直观,而且simulink仿真(以及更费力的脚本文件仿真)需要精确建模,模型不精确计算也是天差地别。而Multibody在具备其他动力学

qq_30267617的博客 8229

snipersim安装

snipersim安装记录,便于后续使用tip:snipersim需要在python2的环境下编译。

weixin_53507617的博客 915

Windows 下 YOLO26 Pose的 TensorRT C++ 部署

本文详细教程YOLO26 Pose在Windows下基于TensorRT的C++部署,涵盖环境配置(VS2022、CUDA 12.9、OpenCV 4.8.1、TensorRT 10.16.1.11)、CMake编译及模型导出(FP32/FP16/INT8),实现预处理快31.8×、推理快14.1×,整流水线达240 fps。支持自定义模型部署与日志分析,复现效果与ultralytics完全对齐,附仓库链接及对比数据。

整理ing 239

Innovus ECO技巧:用setEcoMode+ecoAddRepeater实现批量buffer替换的5个关键步骤

本文详细介绍了在Cadence Innovus工具中,利用setEcoMode与ecoAddRepeater命令实现高效、批量Buffer/Inverter替换的工程化策略。通过启用批处理模式、构建可维护的替换规则、掌握高级定位技巧以及规避布线陷阱等5个关键步骤,帮助芯片设计工程师在ECO阶段大幅提升修改效率与质量,确保设计稳定签核。

d6e7f8的博客 1106

从零开始的C++生活——第二讲——04

但其实,C++11引入了一个新的规则,支持我们在成员变量的声明位置给缺省值,假如我们没有写对应参数的初始化列表,就会通过这个缺省值初始化,其实也还是走了初始化列表,只不过省略了这一步,并且传了之前就给好的缺省值。这里我们分几种情况,对于有初始化列表的成员变量,就不过多赘述了,对于没有的,编译器首先会去查看声明成员变量的位置有没有缺省值,如果有就把缺省值赋值给成员变量,如果没有,对于内置类型,取决于编译器,对于自定义类型,调用它默认的构造函数,如果没有则报错。这次再谈构造函数,主要是讲解一下初始化列表。

dshswra的博客 190

当Flowable遇上AI:智能流程决策的未来探索

本文探讨了Flowable工作流引擎与AI技术的融合,构建智能流程决策系统的前沿实践。通过动态流程控制、机器学习优化表达式、自然语言生成规则等创新方法,显著提升业务流程的自动化水平和决策效率。重点解析了AI如何赋能Flowable核心引擎,实现从静态规则到动态智能的跨越式发展。

weixin_29271053的博客 381

数据分析案例-2024 年全电动汽车数据集可视化分析

本数据集来源于Kaggle,原始数据集共有177866条数据,17个变量。该数据集显示了目前通过华盛顿州许可部 (DOL) 注册的电池电动汽车 (BEV) 和插电式混合动力电动汽车 (PHEV)。电池电动汽车 (BEV) 是一种全电动汽车,使用一个或多个电池来存储电能,为电机提供动力,并通过将车辆插入电源进行充电。插电式混合动力汽车 (PHEV) 是一种使用一个或多个电池为电动机提供动力的车辆;使用另一种燃料,例如汽油或柴油,为内燃机或其他推进源提供动力;并通过将车辆插入电源来充电。

m0_64336780的博客 1万+

1TOPS+WiFi6双频+千兆PHY,兼容树莓派CM4/CM5引脚|触觉智能SOM6208核心板

配套 AMP、Docker、IGH-Ethercat、ROS、OpenCV、YOLOv5、MQTT、RT-Linux、蓝牙等完整开发案例手册。全功能接口覆盖:8路UART、2路CAN、2路网口(板载千兆PHY+ RGMII拓展)、PCIe2.1/USB3.0、2路USB2.0、MIPI DSI/LVDS显示、多路MIPI CSI摄像头输入,SPI、I2C、I2S、SDIO、PWM、GPIO一应俱全;③连接器形态更友好。-工业HMI、工业PLC、能源集中器、医疗显控、电力储能/DTU、边缘计算网关。

Industio_CSDN的博客 475

BLDC&PMSM电机控制器硬件设计工程(八)72V 10kW电机控制器原理图工程及库文件

电机控制器基本需求:接口类型;MCU平台;通信接口;供电;信号采集;信号输出;功率;EMC或者认证需求。

小幽余生不加糖 363

吉林安全员 C 证模拟试卷题库 仿真演练提前适应考试节奏

安全员 C 证的备考,知识点掌握是基础,整卷仿真演练是把掌握转化为得分的关键环节。模拟试卷不是用来"刷数量"的,而是用来暴露问题、修正节奏、巩固易错点的工具。限时、复盘、重做,三个动作做到位,考场上的从容才有来源。

renrenti的博客 220

【心电信号】基于多种滤波去除心电信号基线漂移含Matlab源码

1 简介 心电信号可以用来检测和诊断心脏疾病,心电信号在采集时经常受到呼吸活动、身体运动和皮肤与电极接触不良等影响,因此会产生基线漂移,基线漂移的存在会降低心电信号的质量。所以,在大多数心电信号处理中,包括心律失常的识别、心率变化分析和连续血压测量等,去除基线漂移成为了至关重要的一步。心电信号具有非平稳、非线性的特性,传统的去除心电信号中基线漂移的方法在对心电信号进行去噪时常因去噪过度或者不完全,容易造成大量非线性特征信息的丢失,从而破坏了心电信号本身的动力学特性,这给后续的心电信号信息分析带来了不利影响

qq_59747472的博客 2204

NR PUCCH(一) PUCCH format 0/1

NR中PUCCH物理信道用来发送上行控制信息Uplink Control Information(UCI),当然UCI也可以在PUSCH上发送。UCI 内容包括:CSI,HARQ ACK/NACK ,SR 及上述三者的组合信息。 那先看下PUCCH format ,序列的生成及资源映射的相关内容。 NR中支持5种格式PUCCH,根据PUCCH format占用时域符号长度分为短PUCCH(1-2个符号,PUCCH 0/2)和长PUCCH(4-14个符号,PUCCH1/3/4)。使用短PUCCH 能够支

asd199086的博客 6053

拼多多校招笔试真题 10.18 - 断缆两侧负荷积(C++/Py/Java /Js/Go)

拼多多笔试 10月18号真题,拼多多笔试第四题【断缆两侧负荷积】,提供详细思路讲解以及Java、C++、Python、Go、JavaScript多语言代码实现。拼多多技术岗笔试真题【断缆两侧负荷积】多语言题解。

qq_45776114的博客 475

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

系统活动一抓留存!深入 Linux C/C++ 调试工具之 sysdig

sysdig是开源的Linux系统可见性工具,通过内核探针捕获系统调用与事件,支持实时监控、离线回放(.scap)、过滤分析及Chisel脚本聚合。相比strace仅跟踪单进程,sysdig可全机/容器级观测,适用于故障复盘、安全排查、容器诊断等场景。核心能力包括事件捕获、灵活过滤、eBPF支持与Chisel统计,与Falco协同实现“可观测+安全告警”。推荐工作流:捕获→回放→过滤→分析,结合-topprocs_cpu、netstat等Chisel快速定位问题。

coder_zjy的博客 351

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

C++ 哈希表深度解析:删除为什么必须打标记,负载因子为什么卡 0.7

O(1) 查找的代价是什么?哈希表的难点从来不在查找,而在冲突发生之后怎么办。两条路线——开放定址法和链地址法,删除策略完全不同:一个必须打 DELETE 标记,一个可以真删;负载因子一个卡在 0.7,一个敢放到 1。线性/二次/双重探测各配一组真实落座推演,两个阈值都用 Knuth 探测次数公式算清楚,附两套完整可运行代码,以及手写链地址法最高频的"扩容前算桶号"bug 分析。

2501_93751162的博客 155

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

C++ priority_queue 底层:手撕二叉堆与 Top K 问题

`priority_queue`(优先队列)是算法题和工程开发中极高频的容器。但当你被问到“它的底层是什么?为什么默认是大堆?为什么底层容器默认是 vector 而不是 deque?”时,很多人只能背出“堆”这个字。本文用一张图拆解二叉堆的上浮与下沉,并手写核心骨架代码,最后用 Top K 问题实战演练。

xiangyun61的博客 193

LDR6100 智能遥控器精品软文:Type-C 充电口与低功耗量产维护

当 USB-C 接口从单纯的结构升级,变成整机供电稳定性、待机续航、量产一致性的核心瓶颈,智能遥控器、语音遥控器、手持控制器这类小型手持设备的硬件开发,早已不再是 “换一个 Type-C 座子” 那么简单。大量项目在试产阶段反复踩坑:不同品牌适配器识别失败、热插拔瞬间掉电死机、整机休眠待机电流超标导致电池续航缩水、产线测试时端口状态无法捕捉、兼容性参差不齐。乐得瑞 LDR6100 作为单路 USB-C/PD 专用控制芯片,专为小体积手持设备的 Type-C 供电入口量身打造。

LDR006的博客 399

C++左值右值解析:从基础到移动语义

C++11将表达式值类别细化为左值(lvalue)、亡值(xvalue)和纯右值(prvalue),核心判定标准为“能否取地址”。左值有名称、可取地址,可被赋值;右值临时、不可取地址,但可通过右值引用实现移动语义。std::move仅做类型转换,将左值转为亡值,标记资源可窃取,从而触发移动构造,提升性能。关键点:亡值有身份但可移动,右值引用只能绑定右值,被移动后的对象应避免读取。

qq_34097230的博客 295

【STL】头文件:<cfenv>

<cfenv> 头文件引入 C 标准库 <fenv.h>,并将相关标识符置于 std 命名空间。它定义了浮点异常标志(如 FE_DIVBYZERO)、舍入模式(如 FE_TONEAREST)及环境管理接口,提供 feclearexcept、fetestexcept、fesetround 等函数,用于查询、设置和操作浮点环境与异常状态。使用依赖硬件支持,编译器优化可能影响其行为。

呆瓜的博客 198

C++ 栈展开(Stack Unwinding)

栈展开是C++异常处理的核心机制,指异常传播时按逆序销毁已构造的自动对象,确保资源安全释放。它不仅涉及栈帧的清理,还包含控制流转移、析构调用与上下文恢复,区别于单纯的栈指针移动。通过实例可见,对象析构严格遵循作用域规则,仅清理已离开作用域的局部变量。该过程由编译器与运行时协同完成,是实现RAII和程序健壮性的关键基础。

MzKyle的博客 157

C++~03模版与容器(掌握)

本文介绍了C++中的泛型编程,包括函数模板与类模板的定义与使用,实现类型无关的代码复用。重点讲解了标准模板库(STL)中的常见容器:array(固定大小数组)、vector(动态数组)、list(双向链表)、deque(双端队列)和map(键值对映射),并说明其特性与操作方法。同时介绍了迭代器的概念及其在容器遍历中的高效应用,强调了模板与容器结合带来的灵活性与性能优势。

HHHYC11的博客 404

第二阶段 · 第 2 课:C++ 智能指针

第二阶段 · 第 2 课:C++ 智能指针

qq_37301144的博客 262
上一篇: 平衡二叉树的初步认识及具体实现
下一篇: 二插堆的基本原理以及简单实现
for_ever_love__
博客等级 码龄1年 64粉丝 310原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值