自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

呆瓜的博客

记录工作过程中用到技术

  • 博客(53)
  • 收藏
  • 关注

原创 【STL】矢量化 MSVC STL 算法

摘要: MSVC STL通过矢量化技术(SIMD指令)优化算法性能,包括自动和手动两种方式。自动矢量化由编译器完成,适用于连续内存容器(如vector、array)和基础数值运算;手动矢量化针对特定算法(如查找、统计类)预置SIMD实现,仅支持整数类型,通过宏_USE_STD_VECTOR_ALGORITHMS控制。浮点类型因精度问题仅有部分算法支持手动优化,由_USE_STD_VECTOR_FLOATING_ALGORITHMS控制。

2026-06-23 10:35:29 310

原创 【STL】算法

本文介绍了C++标准库算法的术语规范与基本要求。主要内容包括:1) 标准区间表示法如[A,B)及其遍历规则;2) 等值判断二元谓词的三项强制要求;3) 排序/堆算法中严格弱序的定义及合法谓词示例;4) 升序序列和大顶堆的具体判定标准;5) 算法头文件<algorithm>和<numeric>的功能划分。特别强调所有比较函数必须满足不修改参数、结果一致性和严格弱序等核心规范。

2026-06-22 11:30:41 301

原创 【STL】迭代器

本文介绍了C++标准库中的迭代器概念及其使用方法。迭代器是用于遍历容器元素的对象,支持显式(begin()/end())和隐式(范围for循环)两种使用方式。迭代器分为五类:输出、输入、前向、双向和随机访问迭代器,功能由弱到强,强类型可替代弱类型。所有迭代器都支持拷贝赋值且操作不抛异常。

2026-06-18 16:29:08 216

原创 【STL】stdext 命名空间

本文介绍了微软在MSVC中扩展的stdext命名空间,主要用于存放非标准哈希容器hash_map/hash_set。随着C++11推出标准unordered容器,建议新项目优先使用std::unordered_map/unordered_set。

2026-06-17 14:52:13 227

原创 【STL】C++标准库的线程安全

C++标准库线程安全规则概述:1)通用规则包括:只读共享安全、写入需加锁、不同实例互不干扰;2)shared_ptr特殊规则:副本操作线程安全,但托管对象仍需同步;3)标准流对象允许并发写入但内容可能交错,读取视为写入操作需同步。部分组件(如原子类型)提供更强保障。

2026-06-17 14:17:56 174

原创 【STL】_HAS_ITERATOR_DEBUGGING

本文介绍了用于控制调试版本中迭代器调试功能的宏 _HAS_ITERATOR_DEBUGGING,现已被官方弃用,推荐改用 _ITERATOR_DEBUG_LEVEL 宏。

2026-06-16 13:49:57 228

原创 【STL】调试迭代器支持

本文介绍了Visual C++调试迭代器支持功能,用于检测迭代器的非法使用。在调试模式下,运行时库会触发断言并终止程序,帮助开发者发现错误。

2026-06-16 11:12:43 651

原创 【STL】_SECURE_SCL

宏 _SECURE_SCL 用于控制是否启用迭代器检查功能,现已被 _ITERATOR_DEBUG_LEVEL 取代。默认情况下,调试版本开启检查(非法使用迭代器会触发运行时错误),正式版本关闭。建议通过 _ITERATOR_DEBUG_LEVEL 配置(1或2对应开启,0对应关闭),而非直接使用 _SECURE_SCL。

2026-06-15 15:42:31 206

原创 【STL】检查迭代器

检查迭代器功能通过_ITERATOR_DEBUG_LEVEL宏控制,在Debug模式下默认开启边界检查,防止容器越界访问。该功能支持标准迭代器和数组迭代器,越界时触发运行时错误。

2026-06-11 15:10:36 335

原创 【STL】_SCL_SECURE_NO_WARNINGS

本文介绍了在C++中关闭MSVC编译器C4996警告的多种方法。C4996警告提示使用了C++标准库中不安全接口或旧式函数。

2026-06-11 10:37:51 175

原创 【STL】_ITERATOR_DEBUG_LEVEL

本文介绍了MSVC中的_ITERATOR_DEBUG_LEVEL宏,它用于控制迭代器安全检查级别。该宏取代了旧版_SECURE_SCL和_HAS_ITERATOR_DEBUGGING宏,提供三个取值:0(关闭检查)、1(基础安全检查)、2(最强调试检查)。Debug模式默认2,Release模式默认0。使用时需在包含标准库头文件前定义该宏,或通过编译器选项指定。合理设置该宏可以平衡程序安全性和性能,建议新代码统一使用_ITERATOR_DEBUG_LEVEL替代旧宏。

2026-06-10 14:26:46 288

原创 【STL】安全库:C++标准库

本文概述了C++标准库在安全性方面的改进,重点介绍了Microsoft C++标准库中旧函数的安全替代方案。标准库将可能导致缓冲区溢出的不安全函数(如copy)替换为更安全的_s后缀版本(如basic_string::Copy_s)。使用不安全函数或错误使用迭代器会触发C4996警告,可通过定义_SCL_SECURE_NO_WARNINGS宏禁用警告。这些改进增强了代码安全性,减少了潜在缺陷风险。

2026-06-10 10:38:16 258

原创 【STL】C++程序的启动与终止

摘要:C++程序启动时,系统会先初始化静态对象的常量值并执行其构造函数(顺序未定义,但标准I/O流会优先初始化);终止时,静态对象析构函数仍可使用标准I/O流。程序通过main返回或exit退出时,会逆序执行atexit注册的函数,若其中抛出异常将直接触发terminate强制终止。标准流对象包括cin/cout/cerr/clog,在构造/析构阶段均可安全使用。

2026-06-09 18:28:21 214

原创 【STL】C++标准库容器

本文概述了C++标准模板库(STL)中的容器分类及特性。容器分为三大类:序列容器(如vector、list等保持插入顺序)、关联容器(如map、set等自动排序)和容器适配器(如queue、stack等受限接口)。文章对比了各类容器的特点与适用场景,介绍了C++14引入的异构查找等新特性,并说明了容器元素的基本要求和访问方式。最后指出所有容器都支持同类型比较,C++14后可通过安全函数比较不同容器。全文为后续深入学习STL容器提供了基础认知框架。

2026-06-09 15:03:52 680

原创 【STL】C++ 标准库的约定

C++标准库在实现上保留了一定灵活性:允许隐藏基类、额外重载函数、类型别名多样性等,但同时也设定了严格限制,如虚函数真实性、类型唯一性和异常规范。开发者应遵循文档行为,避免对内部实现做过多假设。关键约定包括:不自行声明C库函数、不依赖未文档化的重载或继承关系、不假定类型别名具体实现、注意位掩码类型和异常处理规则等。标准库保证函数签名不被宏覆盖、非类函数无隐藏重载、虚函数属性明确,并限制异常抛出范围。

2026-06-02 14:56:48 185

原创 【STL】使用 C++ 标准库标头

本文介绍了C++标准库(STL)的使用方法,主要包括两种导入方式:传统的头文件包含(#include)和C++20/23引入的模块导入(import)。文章详细说明了使用规则,包括头文件的包含顺序、重复包含、命名空间规范等注意事项。重点指出应显式包含所需头文件,避免依赖间接包含;标准库内容主要定义在std命名空间,宏不受命名空间约束;禁止向std命名空间添加自定义声明。这些规范帮助开发者正确高效地使用标准库,确保代码的可移植性。

2026-06-02 13:33:50 387

原创 【STL】独立实现必须包含的标头列表

本文总结了STL独立实现(如嵌入式设备)必须包含的核心头文件列表,涵盖原子操作、位运算、类型特性、内存管理等基础功能。要点包括:1)提供了各头文件的分类和核心功能说明,如<atomic>用于多线程安全操作、<memory>提供智能指针;2)标注了特殊要求,如<cstdlib>需至少声明5个关键函数;3)指出部分C++11后废弃的头文件(如<ciso646>)。这些精简的头文件集合可在资源受限环境中提供基本STL支持,同时保持跨平台兼容性。

2026-05-29 15:14:10 329

原创 【STL】C++ 标准库概述

本文简要介绍了C++标准模板库(STL)的核心概念和组件。STL是一套基于泛型编程的模板类和函数集合,提供通用的算法和数据结构。主要组件包括容器(如vector/list)、算法(如排序/搜索)、迭代器(遍历元素)、函数对象(可调用对象)和适配器(转换容器类型)。STL实现分为托管实现(完整功能)和独立实现(精简版),前者适用于普通软件开发,后者用于嵌入式设备。STL的优势在于代码复用、性能优化、泛型编程支持和易于维护,通过模板实现数据类型无关的编程。

2026-05-28 10:57:05 356

原创 【STL】C++标准库前言

C++标准库源自Alexander Stepanov开发的标准模板库(STL),后被国际标准化组织(ISO)采纳并整合到C++运行时库中。虽然正式名称为C++标准库,但业界习惯称其为STL或标准模板库。STL提供了大量预置函数和高效算法实现,涵盖输入输出等常用功能,开发者可直接调用这些现成功能,显著提升开发效率。STL已成为C++编程中不可或缺的核心工具库。

2026-05-27 18:43:56 50

原创 【MFC】对话框属性:X Pos(X位置),Y Pos(Y位置)

本文介绍了对话框属性中的X Pos和Y Pos,这两个属性用于指定对话框左上角的初始坐标,仅在对话框不居中时生效。其坐标参考系由Absolute Align属性决定:当Absolute Align为True时,坐标相对于屏幕左上角;为False时则相对于所有者窗口客户区中心。文章还提供了相关属性的详细说明链接和实际应用示例。

2025-09-10 11:59:07 598

原创 【MFC】对话框属性:Absolute Align(绝对对齐)

本文介绍了对话框属性中的"Absolute Align"(绝对对齐)功能,详细说明了其位置查找方法、作用原理及参数设置。当"居中"属性为False时,该属性决定坐标原点是所有者窗口客户区中心(False)还是屏幕左上角(True)。文章还提供了相关属性详解链接和使用示例,帮助开发者理解对话框位置控制的完整方案。该功能适用于需要精确定位对话框的场景。

2025-09-10 11:56:58 561

原创 【MFC】对话框属性:Center(居中)

本文介绍了对话框属性中的Center(居中)功能,详细说明了其位置查找方法、功能作用和使用场景。当Center=True时,对话框会自动居中显示,忽略X/Y位置属性;当Center=False时,则依赖其他位置属性确定显示位置。文章还提供了相关属性(绝对对齐、X/Y位置)的配套使用说明和示例链接,帮助开发者实现对话框的精确定位。

2025-09-10 11:50:11 725

原创 【MFC】对话框:位置属性(居中、绝对对齐、X位置Y位置)应用示例

本文详细介绍了对话框位置属性的设置方式及效果对比。通过12组不同参数组合测试发现:当居中属性(Center)启用时,对话框始终显示在屏幕中央,其他位置参数无效;关闭居中后,绝对对齐(Absolute Align)决定坐标基准(True时为屏幕坐标,False时为父窗口相对坐标),X/Y位置参数生效。实验包含正负坐标值测试,并附有效果截图直观展示不同设置下的对话框显示位置。

2025-09-10 11:48:23 952

原创 【MFC】对话框属性:字体 (Font Name) 和 大小 (Font Size)

本文介绍了对话框属性中的字体(Font Name)和大小(Font Size)设置方法。通过资源视图打开对话框属性,可自定义字体、字形和大小,这些设置将应用于对话框及其子控件。文章详细说明了属性位置、功能作用,并提供了将字体修改为宋体/斜体/42和隶书/常规/26的两个具体示例。设置后对话框布局单位将基于所选字体计算,且系统字体属性自动变更为False。

2025-09-08 11:08:14 681

原创 【MFC】对话框属性:Use System Font(使用系统字体)

本文介绍了对话框属性中的"使用系统字体"(Use System Font)功能,阐述了其位置查找方法(资源视图→右键属性)和核心作用:确保应用与系统UI风格统一、支持高DPI缩放、简化多语言本地化等。文章通过示例演示了属性默认状态(True)与自定义字体设置(切换为False)的互斥关系,并指出修改系统字体属性时仅影响字体本身,不改变已设定的字形/大小参数。文中还解释了MS Shell Dlg作为系统字体映射机制的原理。

2025-09-08 10:43:43 1200

原创 【MFC】对话框节点属性:Language(语言)

本文介绍了对话框节点属性中的Language(语言)设置,包括其位置、功能和使用方法。该属性通过语言标识符(LANGID)定义资源对应的语言和地区,允许同一资源ID拥有多语言版本。文章详细说明了在属性对话框中查找该属性的步骤,并演示了如何通过修改线程语言和添加英语副本来实现多语言切换,最后展示了中英文两种语言环境下的测试效果。

2025-09-06 16:04:45 576

原创 【MFC】添加对话框

本文介绍了MFC项目中添加对话框的三种方法:1)通过资源视图新建:右键Dialog节点添加资源,选择Dialog类型新建;2)复制已有对话框:右键复制已有对话框并粘贴到资源视图;3)修改源代码:先在Resource.h中定义新宏,再在.rc文件中添加对话框代码。三种方法都需注意资源ID的唯一性,修改后需保存并刷新视图。前两种方法较为简便,第三种适合需要精准控制资源定义的高级用户。

2025-09-05 13:34:52 724

原创 【MFC】对话框节点属性:Condition(条件)

本文介绍了对话框节点属性中的Condition(条件)功能,详细说明了其位置、作用及语法格式。该属性通过资源脚本文件中的预处理指令,在编译期决定是否包含特定资源。文章通过示例演示了不同宏定义(CONDITION1/2/3)对资源加载的影响,验证了条件编译的效果。文末配有测试结果截图,直观展示了不同条件下资源加载的成功与失败情况。

2025-09-05 13:30:40 623

原创 【银河麒麟系统常识】命令:reboot(立即重启操作系统)

【代码】【银河麒麟系统常识】命令:reboot(立即重启操作系统)

2025-04-02 18:20:44 2182

原创 【虚拟机VMware】银河麒麟系统虚拟机:网络异常处理

本文将讲述如何修改虚拟机的网络配置实现虚拟机联网。

2025-04-02 14:26:42 4873

原创 【Windows计算机常识】查看或设置当前连接的WLAN网络

本文将介绍在Windows系统下,查看或设置当前连接的网络配置。

2025-04-01 15:15:00 1465

原创 【银河麒麟系统常识】命令:dotnet publish(发布/打包)

命令:dotnet publish(发布/打包)

2025-03-27 11:22:31 1825

原创 【银河麒麟系统常识】命令:dotnet run(运行)

命令:运行。

2025-03-26 19:51:52 1174

原创 【银河麒麟系统常识】命令:dotnet build(编译)

【代码】【银河麒麟系统常识】命令:编译。

2025-03-26 17:36:29 1519

原创 【银河麒麟系统常识】命令:cd(当前工作目录)

【代码】【银河麒麟系统常识】命令:切换当前工作目录。

2025-03-26 15:42:54 836

原创 【银河麒麟系统常识】需求:安装.NET SDK

需求:安装.NET SDK

2025-03-26 15:13:16 1486

原创 【银河麒麟系统常识】命令:uname -m(查看系统架构)

uname -m。

2025-03-26 14:29:50 1785

原创 【银河麒麟系统常识】命令:dotnet --list-sdks(列出已安装的 .NET SDK 版本)

命令:列出已安装的 .NET SDK 版本。

2025-03-26 14:11:28 687

原创 【Windows计算机常识】查看IP配置

查看IP配置

2025-03-25 19:19:10 513

原创 【银河麒麟系统常识】Error: RTNETLINK answers: Operation not permitted

RTNETLINK answers: Operation not permitted。

2025-03-25 18:53:21 961

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除