C++
文章平均质量分 86
神啊,为什么C++这么难?
while(!(succeed = try())) cout << "Segmentation fault";
C++萌新,日常在指针地狱和模板元编程之间反复横跳。
坚信自己是世界上唯一一个看不懂移动语义的人。
目前状态:
精通从入门到放弃(24小时速成版)
擅长在Stack Overflow上Ctrl+C/V
对「未定义行为」有丰富的实战经验
人生格言:
「如果C++不难,还要我们程序员干嘛?」
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
《C++二级备考复习知识点》(小学生趣味版)
恭喜你完成C++二级冒险之旅!记住:编程不是魔法,而是解决问题的科学。保持好奇心,每天写代码,你一定能成为真正的编程大师!现在,是时候创造属于你自己的数字世界了!🎮(全文约5.2万字,包含200+示例代码、50+互动练习和30个实战项目,适合小学生系统学习C++二级考试内容)原创 2025-11-16 10:15:00 · 686 阅读 · 0 评论 -
C++语法与入门算法知识体系详解
C++语法与算法知识体系摘要 本文系统讲解C++编程基础与入门算法知识,涵盖三大程序结构、数组操作及常用算法实现。主要内容包括: 程序基础:详细解析顺序、分支和循环结构,重点讲解变量定义、if/switch语句、for/while循环及其嵌套使用。 数组应用:深入探讨一维和二维数组的定义初始化、内存布局、元素访问及典型算法,如冒泡排序和矩阵运算。 输入输出:介绍cin/cout基础操作及格式化输出控制,包括setw、setprecision等常用控制符。 算法实践:通过实际代码示例展示成绩分级、乘法表打印、原创 2025-08-21 15:35:43 · 878 阅读 · 0 评论 -
关于C++的#include的超超超详细讲解
本文深入讲解了C++中#include预处理指令的核心概念和使用方法。文章首先介绍了预处理阶段的工作机制,详细解析了#include的本质是将指定头文件内容插入到当前源文件中。重点对比了尖括号<>和双引号""两种包含方式的区别,分析了头文件搜索路径在不同编译器、环境变量和项目设置下的差异。此外,针对重复包含问题,详细阐述了头文件守卫和#pragma once两种解决方案的优缺点。最后,文章介绍了C++20引入的模块系统,阐述了其相较于传统头文件机制在编译速度、封装性和依赖管理原创 2025-08-15 12:36:51 · 1363 阅读 · 0 评论 -
C++的`using namespace std`:超超超详细讲解
摘要:C++命名空间与using namespace std详解 本文深入探讨C++中using namespace std的机制与影响。主要内容包括: 命名空间的本质:解决全局作用域命名冲突,通过逻辑容器隔离标识符。标准库所有标识符必须放在std命名空间中。 using namespace std的作用: using声明:引入单个标识符到当前作用域 using指令:引入整个命名空间所有标识符 编译器名称查找规则:将std命名空间加入当前作用域查找列表 作用域规则: 全局作用域:影响整个翻译单元 局部作用域原创 2025-08-15 12:30:41 · 1550 阅读 · 0 评论 -
C++ string超超超详细
C++ string 核心解析:从基础到源码 摘要:本文深入剖析C++标准库中的std::string类,涵盖基础操作、内存管理、性能优化和源码实现。文章首先介绍字符串构造、赋值等基础操作,重点讲解C++11移动语义的优化原理。随后分析字符串长度与容量的关系,以及增删改查等常见操作。特别探讨了短字符串优化(SSO)机制和堆内存分配策略,通过GCC源码解析底层实现细节。最后提供性能优化技巧,包括预分配内存、避免隐式拷贝等方法,帮助开发者高效使用std::string处理字符串操作。(149字)原创 2025-08-15 12:26:19 · 1098 阅读 · 0 评论 -
C++ if分支超超超详细指南
清晰性优先:代码的可读性比“炫技”更重要,避免过度简化的复杂条件。单一职责:每个if分支应只处理一个明确的逻辑任务。最小化嵌套:通过卫语句、提前返回或提取函数,将嵌套层级控制在3层以内。防御性编程:始终检查输入的有效性(如空指针、越界索引),避免运行时崩溃。原创 2025-08-14 12:37:35 · 821 阅读 · 0 评论 -
C++新手指南超超超详细
这是的C++学习路径,结合了和,帮助初学者高效掌握这门语言。原创 2025-08-14 12:32:01 · 653 阅读 · 0 评论 -
C++查找法超超超详细解析
二叉排序树(BST)是一种动态数据结构左子树中所有节点的值小于根节点的值;右子树中所有节点的值大于根节点的值;左、右子树本身也是二叉排序树。节点结构int val;AVL树是最早提出的自平衡二叉搜索树,由Adelson-Velsky和Landis于1962年发明。其核心特性是每个节点的平衡因子(Balance Factor, BF)绝对值不超过1。平衡因子:BF(node) = 左子树高度 - 右子树高度。失衡条件:插入或删除操作导致某个节点的BF绝对值超过1(即BF=±2)。原创 2025-08-13 13:14:14 · 1368 阅读 · 0 评论 -
C++冒泡、选择、快速、桶排序超超超详细解析
排序算法的学习不仅是掌握代码实现,更是理解“根据问题选择最优解”的算法思维。冒泡排序的简单、选择排序的直接、快速排序的高效、桶排序的巧妙,每种算法都有其独特的适用场景。在实际开发中,我们应避免“为了排序而排序”的思维惯性,而是根据数据规模、分布、稳定性要求等因素,选择最适合的排序算法。正如计算机科学家高德纳(Donald Knuth)所说:“不成熟的优化是万恶之源。”理解每种算法的本质,才能在性能与复杂度之间找到最佳平衡点。希望本文能帮助你在排序算法的海洋中乘风破浪,成为真正的算法高手!原创 2025-08-13 13:11:24 · 1009 阅读 · 0 评论 -
C++二维数组超超超详细指南
类型 数组名[行数][列数];二维数组是C++编程的基础工具,其核心在于理解内存布局、指针操作和动态分配。通过本文的系统讲解,相信你已掌握二维数组的底层原理与实战技巧。在实际开发中,需根据场景选择合适的数据结构(原生数组、vector或指针的指针),并注意内存管理与性能优化。最后,建议通过编写小项目(如矩阵计算器、简单游戏)巩固所学,逐步提升对二维数组的驾驭能力。编程之路,贵在实践!附录:二维数组速查表操作代码示例说明声明二维数组3行4列的int数组静态初始化未初始化元素为0下标访问。原创 2025-08-13 13:06:57 · 1452 阅读 · 0 评论 -
C++一维数组超超超详细指南
vector代码更简洁,无需处理内存分配/释放。vector支持范围for循环、STL算法,开发效率更高。vector的at()方法提供边界检查(抛出异常),更安全。一维数组是C++编程的基石,从内存底层到实战应用,每一个细节都值得深入挖掘。本文通过10万字的详细讲解,覆盖了数组的本质、初始化、访问、查找、排序、动态管理、与STL容器的对比,以及工业级实战案例。希望你能通过本文彻底掌握一维数组的核心知识,并在实际开发中灵活运用。原创 2025-08-13 13:05:41 · 836 阅读 · 0 评论 -
C++一级GESP所有知识点超超超详细指南
C++一级GESP考试知识点简明摘要 GESP C++一级考试主要考察编程基础能力,包含三大核心模块: 编程基础与环境 理解C++基本结构(main函数、头文件、命名空间) 掌握开发环境配置(如Dev-C++) 区分全局变量与局部变量 数据类型与变量 掌握5种基本数据类型(int/float/double/char/bool) 理解变量声明、命名规则及常量定义(const) 熟悉隐式/显式类型转换规则 运算符与表达式 熟练使用算术运算符(特别注意整数除法) 掌握自增/自减运算的前置后置区别 理解复合赋值运算原创 2025-08-09 17:48:58 · 1977 阅读 · 2 评论 -
C++二级GESP所有知识点超超超详细解析
语法格式类型名 数组名[长度];(长度必须是常量表达式,C++11支持constexpr或auto推导)。初始化方式(指定所有元素)。(前两个元素为1、2,其余为0)。(长度由初始化列表推导为3)。二维数组是“数组的数组”,语法为类型名 数组名[行数][列数];。初始化方式(2行3列)。(行数由初始化列表推导为3)。定义:包含函数类型、名称、参数列表和函数体。返回类型 函数名(参数列表) { 函数体;return 返回值;void类型无需return声明。原创 2025-08-09 17:48:23 · 1848 阅读 · 0 评论 -
C++三级GESP所有知识点超超超详细指南
本文全面介绍了C++三级GESP考试的备考要点,涵盖考试大纲、基础语法、核心数据结构与算法应用。主要内容包括:1) GESP三级考试概述,包括题型分布和备考建议;2) C++基础语法精讲,详细说明变量定义、数据类型、运算符和控制语句;3) 重点解析分支结构(if/switch)和循环结构(for/while/do-while)的使用场景与示例代码。文章强调通过真题训练掌握高频考点,为考生提供语法基础和算法思维的全面指导,帮助高效备考C++三级认证考试。(149字)原创 2025-08-09 17:47:42 · 1484 阅读 · 0 评论 -
C++模拟法超超超详细指南
C++模拟法超详细指南摘要 核心内容概述 本文全面讲解C++模拟法的原理与实践,帮助读者掌握这种基础但强大的编程方法。主要内容包括: 模拟法本质:通过代码复现问题规则,逐步推进状态变化解决问题。适用于规则明确、状态可分解的场景。 三大关键步骤: 问题抽象:识别实体、属性和事件 状态建模:用数据结构表示系统状态 规则执行:按步骤推进状态变化 典型应用场景:算法竞赛题、游戏开发、业务系统模拟和数学问题验证。 优势与局限:直观易懂但可能效率较低,需结合数学优化和模块化设计。 实战案例:以约瑟夫环问题为例,展示从问原创 2025-08-07 21:44:21 · 1513 阅读 · 0 评论 -
C++ 位运算(&、|、^、~、>>、<<)超超超详细
位运算在C++编程中具有重要的地位,它涉及到计算机底层的操作,具有高效的特性。通过深入理解和掌握位运算的各种操作符、用法、应用场景、性能优化、常见陷阱和最佳实践,以及进阶主题中的相关知识,可以提升C++程序员的编程能力和代码质量。无论是在底层开发、算法优化、图形处理还是密码学等领域,位运算都有着广泛的应用前景。希望读者能够通过本文的学习,对C++位运算有一个全面而深入的了解,并在实际编程中灵活运用位运算来解决各种问题。原创 2025-08-07 21:43:21 · 1221 阅读 · 0 评论 -
# C++ while循环超超超详细教程
优秀的程序员用for循环写已知循环次数的代码,用while循环征服未知的挑战” —— 约翰·卡马克(id Software创始人)循环以其灵活性和通用性,成为处理未知迭代次数的首选方案。根据2025年Stack Overflow开发者调查,循环在代码库中的出现频率高达37%,尤其在算法实现、系统编程和游戏开发领域占据核心地位。在计算机科学中,循环结构是算法实现的三大基本结构之一。原创 2025-08-07 12:12:26 · 948 阅读 · 0 评论 -
C + +
C++ 是一种,以高效性、灵活性和对底层硬件的控制能力著称。它广泛应用于系统开发、游戏引擎、高性能计算、嵌入式系统等领域。C++ 支持。原创 2025-08-04 17:03:45 · 1083 阅读 · 0 评论 -
高精度算法(High Accuracy Algorithm)
高精度算法(High Accuracy Algorithm)是处理大数字的数学计算方法。在一般的科学计算中,会经常算到小数点后几百位或者更多,当然也可能是几千亿几百亿的大数字。一般这类数字我们统称为高精度数,高精度算法是用计算机对于超大数据的一种模拟加,减,乘,除,乘方,阶乘,开方等运算。原创 2025-06-20 18:36:14 · 199 阅读 · 0 评论 -
C++学者给您讲数学之——数列
*数列(sequence of number)**是以正整数集(或其有限子集)为定义域的有序数集。数列中的每个数称为该数列的项,其中:第一位称为第1项(首项)第二位称为第2项以此类推,第n位称为第n项,记作an。原创 2025-06-03 21:56:39 · 660 阅读 · 0 评论 -
C++中实现随机数(超详细!)
为了解决上面的问题,可以先执行rand()后再除以RAND_MAX,获得0~1之间的随机实数(因为RAND_MAX永远大于rand()的返回值),然后扩大n倍后四舍五入,获得[0~n]之间的均匀整数。, (time(NULL)返回自UTC时间1970年1月1日0点以来的秒数),它的作用是初始化随机数种子,当这种种子不一样时就能产生不同的一套随机数。可以通过rand()/RAND_MAX获得[0,n]间的随机实数后再乘n获得[0~n]间的均匀整数。另外,如果想要更高的精度,可以采取多次随机的方法。原创 2025-06-02 21:38:29 · 3734 阅读 · 0 评论 -
推荐10个好用的C++在线编译器,去网吧学习不用配置环境了
很多时候我们会去网吧学习C++(不是),安装VS、Eclipse这样的大型软件没必要,但是下载来配置环境比较麻烦,这时一个实用的C++在线编译器就非常难得和可贵了,我试用了多款后,特地奉上这10个C++在线编译器,让你成为网吧里最靓的仔。原创 2025-06-02 11:44:18 · 950 阅读 · 0 评论 -
Dev C++下载地址和安装教程(图解版)
Dev C++ 是一款免费开源的 C/C++ IDE,内嵌 GCC 编译器(GCC 编译器的 Windows 移植版),是 NOI、NOIP 等比赛的指定工具。Dev C++ 的优点是体积小(只有几十兆)、安装卸载方便、学习成本低,缺点是调试功能弱。安装 Dev C++ 跟安装普通软件一样,远没有安装 VS 那么复杂。截止到2017年06月07日,Dev C++ 的最新版本是 5.11。火墙之内,有时候无法访问 SourceForge 这个网站,建议大家去百度网盘下载。原创 2025-06-02 11:37:37 · 651 阅读 · 0 评论 -
C++ 简介
抽象是从具体的实例中提取共同的特征,形成抽象类或接口,以便于代码的复用和扩展。抽象类和接口可以让程序员专注于高层次的设计和业务逻辑,而不必关注底层的实现细节。原创 2025-06-02 11:34:48 · 975 阅读 · 0 评论 -
C++ 标准库
C++ 标准库包括一组头文件,这些头文件提供了各种功能和工具,涵盖了输入输出、容器、算法、多线程、正则表达式等。C++ 标准库包含了所有的 C 标准库,为了支持类型安全,做了一定的添加和修改。原创 2025-06-02 11:31:06 · 737 阅读 · 0 评论 -
C++ 标准输入输出 -- <iostream>
<iostream> 定义了几个常用的流类和操作符,允许程序与标准输入输出设备(如键盘和屏幕)进行交互。以下是库的详细使用说明,包括其主要类和常见用法示例。标准输入和输出:#include <iostream>int main() { int age; std::string name; // 使用 std::cout 输出到屏幕 std::cout << "Enter your name: "; // 使用 std::cin 从键盘读取输入 std::原创 2025-06-02 11:28:36 · 1331 阅读 · 0 评论 -
如何阅读一份源代码?
PS:如果很多事情,你当时做的时候能想到今后面对这个输出的人是你自己,比如自己写的代码后面要自己维护、自己写的文章后面给自己看,等等的,世界会美好很多。比如写技术博客这些事情,因为我在写的时候考虑到以后看这份文档的人可能就是我本人,所以在写的时候会尽量的清晰、易懂,力图我自己一段时间后再看到自己的这份文档时,能够马上回忆起当时的细节,也正是因为这样,我很少在博客里贴大段的代码,尽可能的补充图例。好比盖房子,数据结构就是房子的框架结构,如果一间房子很大,而你并不清楚这个房子的结构,会在这里面迷路。原创 2025-06-02 11:22:42 · 852 阅读 · 0 评论 -
C++ 的关键字
const(常量的,constant)所修饰的对象或变量不能被改变,修饰函数时,该函数不能改变在该函数外面声明的变量也不能调用任何非const函数。在 C++ 中,用 const 声明一个变量,意味着该变量就是一个带类型的常量,可以代替 #define,且比 #define 多一个类型信息,且它执行内链接,可放在头文件中声明;friend(友元)声明友元关系。它可以把一个指针转换成一个整数,也可以把一个整数转换成一个指针(先把一个指针转换成一个整数,在把该整数转换成原类型的指针,还可以得到原先的指针值)。原创 2025-06-02 11:19:44 · 718 阅读 · 0 评论 -
【C语言指南】printf()函数详解
printf 是指。printf 是C语言标准库函数,定义于头文件 <stdio.h>。printf 函数的一般调用格式为:printf("<格式化字符串>", <参量表>)。输出的字符串除了可以是字母、数字、空格和一些数字符号以外,还可以使用一些转义字符表示特殊的含义。原创 2025-06-02 11:18:16 · 1171 阅读 · 0 评论 -
占位符
格式占位符(%)是在C/C++语言中格式输入函数,如 scanf、printf 等函数中使用。%f,%F,%e,%E,%g,%G 用来输入实数,可以用小数形式或指数形式输入。%a,%A 读入一个浮点值(仅C99有效)。%x,%X 读入十六进制整数。%d, %i 代表整数。原创 2025-05-30 19:30:46 · 318 阅读 · 0 评论 -
GESP】C++一级考试大纲知识点梳理(1)
计算机的基本构成包括CPU、内存和I/O设备等。操作系统如Windows和Linux为计算机硬件提供了管理和操作接口,并支持多任务处理和用户交互。计算机的历史从大型机发展到个人电脑,再到现代的智能设备,已经深刻影响了各个行业和日常生活。如今,计算机在信息处理、人工智能、互联网、娱乐和科学研究等领域发挥着重要作用。原创 2025-05-30 19:26:34 · 1368 阅读 · 0 评论 -
C++初赛第三讲
分治算法从字面上理解就是分而治之,即把一个复杂的问题分成两个或更多的相同或相似的子问题,再把子问题分成更小的子问题,直到最后的子问题可以简单地直接求解,原问题的解即子问题的解的合并。插入排序是指将一个记录插入已经有序的序列中,得到一个新的元素加一的有序序列,即将第一个元素看成一个有序的序列,从第二个元素开始逐个插入以得到一个完整的有序序列。冒泡排序是指在一组需要排序的数组中,当两两数据的顺序与要求的顺序相反时交换数据,使较大的数据往后移,每趟排序都将最大的数放在最后的位置。原创 2025-03-07 18:22:25 · 975 阅读 · 0 评论 -
C++初赛第二讲
时至今日,尽管计算机软硬件技术飞速发展,但计算机本身的体系结构并没有明显的突破,当今的计算机仍属于冯·诺依曼架构。十进制转二进制相对麻烦一些,用2乘十进制小数,可以得到积,将积的整数部分取出,再用2乘于余下的小数部分,又得到一个积,再将积的整数部分取出,如此进行,直到积中的小数部分为0,整数部分为1,此时1为二进制的最后一位。根据计算机的性能指标,如机器规模的大小、运算速度的高低、主存储容量的大小、指令系统性能的强弱以及机器的价格等,可将计算机分为巨型机、大型机、中型机、小型机、微型机和工作站。原创 2025-02-28 19:04:23 · 1348 阅读 · 0 评论 -
C++初赛第一讲2.0
队列类似于排队,只能从队头出、队尾入,所以也是一种受限的线性表列的定义是由一个数组和两个队头、队尾元素组成的。//队列的最大容量//队头指针,初始值为 0int rear=0;//队尾指针,初始值为0队列类似于排队,只能从队头出、队尾入,所以也是一种受限的线性表列的定义是由一个数组和两个队头、队尾元素组成的。//队列的最大容量//队头指针,初始值为 0int rear=0;//队尾指针,初始值为0。原创 2025-02-22 22:46:46 · 1057 阅读 · 0 评论 -
C++初赛第一讲1.0
1.C++ 程序必须有一个 main 函数,一个源程序只有一个 main 函数2.程序的运行总是从 main 函数开始,程序由一个 main 函数和0个或多个其他函数构成3.main 函数可以调用其他函数,但是不能被其他函数调用4.语句均以分号作为语句结束符,程序中的大小写字母代表不同的含义程序中使用的任何变量均须先定义、后使用int Fib(){Fib();return 0;数组是一组有序数据的集合,数组的定义主要由三部分构成:数据类型数组名和数组的大小。以下是一个 int 类型数组的定义。原创 2025-02-11 12:04:45 · 768 阅读 · 0 评论 -
深度优先遍历
深度优先遍历是一种用于遍历或搜索树或图的算法。它沿着树的深度遍历树的节点,尽可能深的搜索树的分支。原创 2024-12-29 16:38:36 · 265 阅读 · 0 评论 -
计算机语言
但是用汇编语言编写的源程序不能被计算机直接识别,必须使用某 种特殊的软件将用汇编语言写的源程序翻译和连接成能被计算机直接识别的二进制代 码。编译方式的翻译工作由“编译程序”来完成,它是先将整个源程序都转换成二进制代 码,生成目标程序,然后把目标程序连接成可执行的程序,以完成源程序要处理的 运算并取得结果。解释方式的翻译工作由“解释程序”来完成。原创 2025-01-03 19:26:02 · 593 阅读 · 0 评论 -
计算器概述
人工智能(Artificial Intelligence,简称AI)又可称为智能模拟,是计算机模拟人类的智能活动,诸如感知、判断、理解、学习、问题求解和图像识别等。人工智能的研究目标是计算机更好地模拟人的思维活动,那时的计算机将可以完成更复杂的控制任务。通常配有高分辨率的大屏、多屏显示器及容量很大的内存储器和外部存储器,并且具有极强的信息和高性能的图形、图像处理功能的计算机。根据计算机的性能指标,如机器规模的大小、运算速度的高低、主存储容量的大小、指令系统性能的强弱以及机器的价格等,可将计算机分为。原创 2025-01-04 15:33:39 · 934 阅读 · 0 评论 -
时间复杂度和空间复杂度
我们早期的计算机容量很小,在那个时候对空间复杂可谓是很在乎,但是现在随着计算机的发展,现在我们都是在用空间换时间,所以我们如今已经不需要再特别关注一个算法的空间复杂度。我们默认规定使用大0来表示时间复杂度,比如0(1),0(n),O(n^2)等等,其中n表示数据规模或者大小。一个算法所花费的时间与其中语句的执行次数成正比例,算法中的基本操作的执行次数,为算法的时间复杂度。时间复杂度算的是基本操作的执行次数,空间复杂度算的是变量的个数。比如T(n)=3n+3这个例子的时间复杂度为O(n)原创 2025-01-05 16:16:06 · 1310 阅读 · 0 评论
分享