C++初赛
文章平均质量分 89
.刃
while(!(succeed = try())) cout << "Segmentation fault";
C++萌新,日常在指针地狱和模板元编程之间反复横跳。
坚信自己是世界上唯一一个看不懂移动语义的人。
目前状态:
精通从入门到放弃(24小时速成版)
擅长在Stack Overflow上Ctrl+C/V
对「未定义行为」有丰富的实战经验
人生格言:
「如果C++不难,还要我们程序员干嘛?」
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
C++语法与入门算法知识体系详解
C++语法与算法知识体系摘要 本文系统讲解C++编程基础与入门算法知识,涵盖三大程序结构、数组操作及常用算法实现。主要内容包括: 程序基础:详细解析顺序、分支和循环结构,重点讲解变量定义、if/switch语句、for/while循环及其嵌套使用。 数组应用:深入探讨一维和二维数组的定义初始化、内存布局、元素访问及典型算法,如冒泡排序和矩阵运算。 输入输出:介绍cin/cout基础操作及格式化输出控制,包括setw、setprecision等常用控制符。 算法实践:通过实际代码示例展示成绩分级、乘法表打印、原创 2025-08-21 15:35:43 · 1004 阅读 · 0 评论 -
关于C++的#include的超超超详细讲解
本文深入讲解了C++中#include预处理指令的核心概念和使用方法。文章首先介绍了预处理阶段的工作机制,详细解析了#include的本质是将指定头文件内容插入到当前源文件中。重点对比了尖括号<>和双引号""两种包含方式的区别,分析了头文件搜索路径在不同编译器、环境变量和项目设置下的差异。此外,针对重复包含问题,详细阐述了头文件守卫和#pragma once两种解决方案的优缺点。最后,文章介绍了C++20引入的模块系统,阐述了其相较于传统头文件机制在编译速度、封装性和依赖管理原创 2025-08-15 12:36:51 · 1487 阅读 · 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 · 1855 阅读 · 0 评论 -
C++ string超超超详细
C++ string 核心解析:从基础到源码 摘要:本文深入剖析C++标准库中的std::string类,涵盖基础操作、内存管理、性能优化和源码实现。文章首先介绍字符串构造、赋值等基础操作,重点讲解C++11移动语义的优化原理。随后分析字符串长度与容量的关系,以及增删改查等常见操作。特别探讨了短字符串优化(SSO)机制和堆内存分配策略,通过GCC源码解析底层实现细节。最后提供性能优化技巧,包括预分配内存、避免隐式拷贝等方法,帮助开发者高效使用std::string处理字符串操作。(149字)原创 2025-08-15 12:26:19 · 1298 阅读 · 0 评论 -
C++ if分支超超超详细指南
清晰性优先:代码的可读性比“炫技”更重要,避免过度简化的复杂条件。单一职责:每个if分支应只处理一个明确的逻辑任务。最小化嵌套:通过卫语句、提前返回或提取函数,将嵌套层级控制在3层以内。防御性编程:始终检查输入的有效性(如空指针、越界索引),避免运行时崩溃。原创 2025-08-14 12:37:35 · 926 阅读 · 0 评论 -
C++新手指南超超超详细
这是的C++学习路径,结合了和,帮助初学者高效掌握这门语言。原创 2025-08-14 12:32:01 · 707 阅读 · 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 · 1441 阅读 · 0 评论 -
C++冒泡、选择、快速、桶排序超超超详细解析
排序算法的学习不仅是掌握代码实现,更是理解“根据问题选择最优解”的算法思维。冒泡排序的简单、选择排序的直接、快速排序的高效、桶排序的巧妙,每种算法都有其独特的适用场景。在实际开发中,我们应避免“为了排序而排序”的思维惯性,而是根据数据规模、分布、稳定性要求等因素,选择最适合的排序算法。正如计算机科学家高德纳(Donald Knuth)所说:“不成熟的优化是万恶之源。”理解每种算法的本质,才能在性能与复杂度之间找到最佳平衡点。希望本文能帮助你在排序算法的海洋中乘风破浪,成为真正的算法高手!原创 2025-08-13 13:11:24 · 1103 阅读 · 0 评论 -
C++二维数组超超超详细指南
类型 数组名[行数][列数];二维数组是C++编程的基础工具,其核心在于理解内存布局、指针操作和动态分配。通过本文的系统讲解,相信你已掌握二维数组的底层原理与实战技巧。在实际开发中,需根据场景选择合适的数据结构(原生数组、vector或指针的指针),并注意内存管理与性能优化。最后,建议通过编写小项目(如矩阵计算器、简单游戏)巩固所学,逐步提升对二维数组的驾驭能力。编程之路,贵在实践!附录:二维数组速查表操作代码示例说明声明二维数组3行4列的int数组静态初始化未初始化元素为0下标访问。原创 2025-08-13 13:06:57 · 1620 阅读 · 0 评论 -
C++一维数组超超超详细指南
vector代码更简洁,无需处理内存分配/释放。vector支持范围for循环、STL算法,开发效率更高。vector的at()方法提供边界检查(抛出异常),更安全。一维数组是C++编程的基石,从内存底层到实战应用,每一个细节都值得深入挖掘。本文通过10万字的详细讲解,覆盖了数组的本质、初始化、访问、查找、排序、动态管理、与STL容器的对比,以及工业级实战案例。希望你能通过本文彻底掌握一维数组的核心知识,并在实际开发中灵活运用。原创 2025-08-13 13:05:41 · 947 阅读 · 0 评论 -
高精度算法(High Accuracy Algorithm)
高精度算法(High Accuracy Algorithm)是处理大数字的数学计算方法。在一般的科学计算中,会经常算到小数点后几百位或者更多,当然也可能是几千亿几百亿的大数字。一般这类数字我们统称为高精度数,高精度算法是用计算机对于超大数据的一种模拟加,减,乘,除,乘方,阶乘,开方等运算。原创 2025-06-20 18:36:14 · 233 阅读 · 0 评论 -
C++学者给您讲数学之——数列
*数列(sequence of number)**是以正整数集(或其有限子集)为定义域的有序数集。数列中的每个数称为该数列的项,其中:第一位称为第1项(首项)第二位称为第2项以此类推,第n位称为第n项,记作an。原创 2025-06-03 21:56:39 · 788 阅读 · 0 评论 -
C++ 标准库
C++ 标准库包括一组头文件,这些头文件提供了各种功能和工具,涵盖了输入输出、容器、算法、多线程、正则表达式等。C++ 标准库包含了所有的 C 标准库,为了支持类型安全,做了一定的添加和修改。原创 2025-06-02 11:31:06 · 760 阅读 · 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 · 1367 阅读 · 0 评论 -
如何阅读一份源代码?
PS:如果很多事情,你当时做的时候能想到今后面对这个输出的人是你自己,比如自己写的代码后面要自己维护、自己写的文章后面给自己看,等等的,世界会美好很多。比如写技术博客这些事情,因为我在写的时候考虑到以后看这份文档的人可能就是我本人,所以在写的时候会尽量的清晰、易懂,力图我自己一段时间后再看到自己的这份文档时,能够马上回忆起当时的细节,也正是因为这样,我很少在博客里贴大段的代码,尽可能的补充图例。好比盖房子,数据结构就是房子的框架结构,如果一间房子很大,而你并不清楚这个房子的结构,会在这里面迷路。原创 2025-06-02 11:22:42 · 901 阅读 · 0 评论 -
C++ 的关键字
const(常量的,constant)所修饰的对象或变量不能被改变,修饰函数时,该函数不能改变在该函数外面声明的变量也不能调用任何非const函数。在 C++ 中,用 const 声明一个变量,意味着该变量就是一个带类型的常量,可以代替 #define,且比 #define 多一个类型信息,且它执行内链接,可放在头文件中声明;friend(友元)声明友元关系。它可以把一个指针转换成一个整数,也可以把一个整数转换成一个指针(先把一个指针转换成一个整数,在把该整数转换成原类型的指针,还可以得到原先的指针值)。原创 2025-06-02 11:19:44 · 752 阅读 · 0 评论 -
【C语言指南】printf()函数详解
printf 是指。printf 是C语言标准库函数,定义于头文件 <stdio.h>。printf 函数的一般调用格式为:printf("<格式化字符串>", <参量表>)。输出的字符串除了可以是字母、数字、空格和一些数字符号以外,还可以使用一些转义字符表示特殊的含义。原创 2025-06-02 11:18:16 · 1255 阅读 · 0 评论 -
GESP】C++一级考试大纲知识点梳理(1)
计算机的基本构成包括CPU、内存和I/O设备等。操作系统如Windows和Linux为计算机硬件提供了管理和操作接口,并支持多任务处理和用户交互。计算机的历史从大型机发展到个人电脑,再到现代的智能设备,已经深刻影响了各个行业和日常生活。如今,计算机在信息处理、人工智能、互联网、娱乐和科学研究等领域发挥着重要作用。原创 2025-05-30 19:26:34 · 1611 阅读 · 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 · 829 阅读 · 0 评论 -
C++初赛第二讲
时至今日,尽管计算机软硬件技术飞速发展,但计算机本身的体系结构并没有明显的突破,当今的计算机仍属于冯·诺依曼架构。十进制转二进制相对麻烦一些,用2乘十进制小数,可以得到积,将积的整数部分取出,再用2乘于余下的小数部分,又得到一个积,再将积的整数部分取出,如此进行,直到积中的小数部分为0,整数部分为1,此时1为二进制的最后一位。根据计算机的性能指标,如机器规模的大小、运算速度的高低、主存储容量的大小、指令系统性能的强弱以及机器的价格等,可将计算机分为巨型机、大型机、中型机、小型机、微型机和工作站。原创 2025-02-28 19:04:23 · 1379 阅读 · 0 评论 -
C++初赛第一讲2.0
队列类似于排队,只能从队头出、队尾入,所以也是一种受限的线性表列的定义是由一个数组和两个队头、队尾元素组成的。//队列的最大容量//队头指针,初始值为 0int rear=0;//队尾指针,初始值为0队列类似于排队,只能从队头出、队尾入,所以也是一种受限的线性表列的定义是由一个数组和两个队头、队尾元素组成的。//队列的最大容量//队头指针,初始值为 0int rear=0;//队尾指针,初始值为0。原创 2025-02-22 22:46:46 · 1080 阅读 · 0 评论 -
C++初赛第三讲
分治算法从字面上理解就是分而治之,即把一个复杂的问题分成两个或更多的相同或相似的子问题,再把子问题分成更小的子问题,直到最后的子问题可以简单地直接求解,原问题的解即子问题的解的合并。插入排序是指将一个记录插入已经有序的序列中,得到一个新的元素加一的有序序列,即将第一个元素看成一个有序的序列,从第二个元素开始逐个插入以得到一个完整的有序序列。冒泡排序是指在一组需要排序的数组中,当两两数据的顺序与要求的顺序相反时交换数据,使较大的数据往后移,每趟排序都将最大的数放在最后的位置。原创 2025-03-07 18:22:25 · 1139 阅读 · 0 评论
分享