自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(195)
  • 收藏
  • 关注

原创 C++入门(算法) - 习题

该题目非常简单,直接根据题目的要求输出就行。代码如下:代码语言:javascriptAI代码解释: 注意语法细节:main函数写法、大括号匹配、中英标点符号使用、头文件同时还要注意挑选相匹配的编译环境,只要是C++就行。

2026-01-07 04:09:55 783

原创 C++入门(一)(算法竞赛)

在C++中要完成输入和输出的操作会涉及到iostream文件中的多个定义,所以要包含这个头文件的。iostream文件中的io指的是输入(进入程序的信息,就是可以给程序输入数据)和输出(从程序中输出的信息,就是将程序的数据打印到屏幕上)。在代码中如果使用某个头文件的定义,就要包含相对应的头文件。,比如:“abcd”,“hello world”,字符串中可以有一个或多个字符,也可以没有字符," "表示空字符串。main函数是程序的入口,无论C++程序中有多少代码,都是从main函数开始执行,故。

2026-01-07 04:09:10 932

原创 C++入门(二) (算法竞赛)

我们不需要记住所有的ASCII码表中的数字,使用时查看就行。从某一方面来说代码如下:代码语言:javascriptAI代码解释在这里插入图片描述。

2026-01-07 04:08:04 486

原创 C++入门(三) (算法竞赛)

在写代码时候,一定会涉及到计算。操作符也被叫做:运算符,是不同的翻译,意思是一样的。分别是:+ - * / %,这些操作符都是。代码语言:javascript。

2026-01-07 04:07:17 223

原创 C++数组(一)(算法竞赛)

前面我们已经将C++的最基础最重要的一部分给讲完了,接下来我们将继续深入另一个在写代码比较常用的知识点数组,从而能够面对多种数据不再感到手忙脚乱,能够依靠编号和阵列来组织,从而更好的输入或打印多种数据。数组是一组相同类型元素的集合。数组中存放的是 1 个或者多个数据,但是数组元素个数不能为 0。数组中存放的多个数据,类型是相同的。数组分为一维数组和多维数组,多维数组一般比较多见的是二维数组。

2026-01-07 04:05:36 919

原创 C++数组(二)(算法竞赛)

上一篇我们详细的介绍了一维数组从创建到访问打印,以及一些其他函数的运用。接下来这一篇将会对代码中常用的二维数组一一道来,从而让各位更好的掌握这个知识热点。

2026-01-07 04:04:32 652

原创 C++数组(三)(算法竞赛)

数组的元素如果是字符类型,这种数组就是字符数组,字符数组可以是一维数组,可以是二维数组(多维数组)。接下来主要讨论一维的字符数组。代码语言:javascriptAI代码解释//一维数组//二维数组C 语言中使用双引号括起来一串字符表示字符串,这种方式虽然在 C++ 中也是支持的,但是一般我们会将这种字符串称为C 语言风格的字符串。如果需要将一个 C 语言风格的字符串存储起来,就可以是字符数组。

2026-01-07 04:03:50 460

原创 C/C++输入输出初级(二) (算法竞赛)

在上面的代码中,使用cout进行变量的输出,实质上是将变量插入到cout对象里,并以cout对象作为返回值返回,因此我们还可以用<< 在后面连续输出多个内容,通过连续输入输出的方式对代码进行编写,效果如下。写程序的时候,经常需要处理数据,不管什么类型的数据都是以字符流的形式输入和输出的,也就是不管在键盘上输入什么类型的数据,还是将程序中的各种类型的数据输出显示到控制台屏幕上,都是以字符流的形式处理的。是C++中提供的标准输入流对象,一般针对的是键盘,也就是从键盘上输入的字符流,使用cin来进行数据的提取,

2026-01-07 04:01:48 318

原创 C++条件判断与循环(一)(算法竞赛)

条件判断与循环结构作为程序的智慧枢纽与不息脉搏,它们赋予机器程序的审时度势的思考能力,铸就逻辑严密的运行轨道,让精准导航与高效运转成为现实。因此只有掌握了条件判断与循环结构才能真正的敲开编程世界的大门,才能真正的向算法踏出历史性的一步。

2026-01-07 04:01:09 858

原创 C++条件判断与循环(二)(算法竞赛)

前面一篇已经对 if-else 语句、关系操作符、条件操作符详细的介绍了,不知各位能否熟练的掌握。接下来将对逻辑操作符、switch 语句、while 语句一一介绍,帮你打通条件判断与循环的任督二脉。

2026-01-07 04:00:33 823

原创 C++条件判断与循环(三)(算法竞赛)

首先执行表达式 1 初始化循环变量,接下来就是执行表达式 2 的判断部分,表达式 2 的结果如果 ==0,则循环结束;=0 则执行循环语句,循环语句执行完后,再去执行表达式 3 ,调整循环变量,然后再去表达式2的地方执行判断,表达式 2的结果是否为0,决定循环是否继续。: 上面两种代码的差异是,代码 1 中 for 循环结束后,i的值还可以继续使用;整个循环的过程中,表达式 1 初始化部分只被执行 1 次,剩下的就是表达式 2、循环语句、表达式 3 在循环。代码语言:javascript。

2026-01-07 03:59:40 736

原创 C++ 波澜壮阔 40 年:一览C++三大核心要点 I/O流、缺省参数、函数重载

完成C语言学习后,我们正式进入C++世界。C++在保留C语言优势的同时,引入了更现代化的特性,让代码更简洁、安全。本文将重点解析C++三大核心特性:输入输出流、缺省参数、函数重载。从cin/cout的智能类型识别,我们将逐一剖析其原理与应用。无论您是C++初学者,还是希望巩固基础的开发者,本文都将为您提供清晰的学习路径,助您打好C++编程基础。

2026-01-07 03:59:03 1017

原创 C++ 波澜壮阔 40 年:从基础I/O到函数重载与引用的完整构建

这样有助于提升效率,而在最后一次的输出语句是使用。涉及类和对象、运算符重载、继承等很多。通过简单的程序观察是否不用包含。代码语言:javascript。代码语言:javascript。,由于是刚刚开始接触。

2026-01-07 03:58:31 630

原创 【C++】C++入门—(下)

上一篇文章我们着重介绍了C++的函数重载和引用,我们探寻了函数重载的奥妙以及引用相较于指针的便捷,高效。那么这一篇文章我们就来讲讲最后的两个内容:内联函数和nullptr。话不多说,赶紧开始吧!

2026-01-07 03:57:11 602

原创 【C++】类和对象——(上)

class为定义类的关键字,Stack为类的名字,{}中为类的主体,注意类定义结束时后面分号不能省略。类体中内容称为类的成员:类中的变量称为类的属性或员变量;类中的函数称为类的方法或者成员函数。代码语言:javascriptAI代码解释struct A//定义各种变量或指针int* arr;int b;//在结构体中嵌套定义结构体struct A B;

2026-01-07 03:56:33 655

原创 【C++】类和对象—(下) 收官之战

类比我们之前学过的函数重载,函数重载的特点就是函数名相同参数不同。那么运算符重载也一样,运算符重载就是将普通的运算符重载成为一个函数,在使用的时候就去调用对应的函数即可。

2026-01-07 03:55:52 984

原创 【C++】C++类和对象—(中)

要学习类和对象中的六个成员函数,那我们就要先了解什么是成员函数?成员函数就是在类里面定义的函数,一般定义在类里面的都称为成员如果是变量就称为成员变量,如果是函数就称为成员函数。代码语言:javascriptAI代码解释class Apublic://成员函数private://成员变量int _a;

2026-01-07 03:55:05 969

原创 【C++】如何搞定 C++ 内存管理?

在C语言阶段学习的时候,总会有一些问题就是我们写过的各种各样的代码,局部变量,全局变量,静态变量等它们到底是存在哪的呢?上面我们看到的大部分在函数内部创建的变量,指针,数组,它们基本都是在栈区创建的说明栈区对我们来说也是一块比较重要的区域,那么为什么它们是存在栈区的呢?上面代码中的一些局部变量、全局变量、静态变量、数组、指针等都存在什么地方?在C语言中,内存管理是通过我们之前所学过的三个内存函数,代码语言:javascript。

2026-01-07 03:48:30 793

原创 【C++STL】一文掌握 String 核心接口:从基础到实用!

STL的概念:STL(Standard Template Library)是C++标准库的核心组成部分,提供了一套通用的模板类和函数,用于实现常见的数据结构和算法。

2026-01-07 03:47:50 700

原创 【C++STL】新手也能会:string 模拟实现保姆级指南!

拷贝构造要注意开辟空间和拷贝数据的时候一定不要忘记给。对于拷贝构造和赋值重载还有一些现代写法,代码语言:javascript。代码语言:javascript。代码语言:javascript。代码语言:javascript。

2026-01-07 03:46:45 394

原创 C++内存管理基石:POD类型与面向对象语义解析

这里有一个经验,若delete/free出问题了,若释放的位置没有问题,那就不是这两者导致的,就比如说这里delete的指针_start没有变化过,一直指向空间开始的位置(因为不能部分释放),那就不是delete的问题(比如说空间开少了越界了也会在delete处报错)这里肯定是和扩容有关系的,插入第5组数据一定会发生扩容 这里调试时将旧空间的数据拷贝给新空间这一步是没有问题的,但是旧空间delete后新旧空间都出现问题了。当string的析构函数被调用时,它会释放自己 _str指向的堆内存(0x100)。

2026-01-06 02:31:46 946

原创 攻克算法面试:C++ Vector 核心问题精讲

需要返回的是无重复元素的数量通过这样的步骤,双指针法在原地完成了重复元素的删除,同时保证了时间复杂度为O(n)、空间复杂度为 O(1),是该问题的最优解法。

2026-01-06 02:31:11 1106

原创 C++ list容器模拟实现:迭代器、构造与STL风格编程

这里定义节点的类用struct,定义list的类用class的原因是一个默认的共识,一个类如果它的所有成员都不期望用访问限定符限制的时候,习惯上就用struct定义,这里的list_node通常作为链表的一个子结构,是存储每个数据的一个最小单元,链表内是要大量访问内部数据的,所以这里不用访问限定符限制。在 list 类的构造函数中,创建头结点时,显式调用 list_node 的带参构造,并传入 T 类型的默认值(通过 T() 触发 T 的默认构造,也就是使用匿名对象,T有可能是任意类型)。

2026-01-06 02:30:02 734

原创 【c++】 模板初阶

虽然这样似乎解决了问题,但是这样的设计写着太过麻烦,只要出现新类型就需要写新的函数,代码的复用率很低。函数模板是c++中的一类机制,通过在函数定义中使用模板参数,我们可以编写一个函数,而在调用时根据实际参数的类型自动生成相应的版本。我们发现两次调用的是不同的Swap()函数,根据传入参数类型的不同 ,编译器会生成不同的函数。这种通过抽象和模板化来编写可重用和灵活的代码以此提升代码的可读性和维护性,同时避免代码重复的方式称为泛型编程。代码语言:javascript。代码语言:javascript。

2026-01-06 02:29:18 645

原创 【c++】 模板初阶

编译器不能自动推导出类中T的类型,这点和T作返回值不作参数的情况一样,编译器没有推理其中T类型的依据,所以不手动规定类的类型,就会报错。函数模板是c++中的一类机制,通过在函数定义中使用模板参数,我们可以编写一个函数,而在调用时根据实际参数的类型自动生成相应的版本。我们发现两次调用的是不同的Swap()函数,根据传入参数类型的不同 ,编译器会生成不同的函数。当模板的参数只有一个时,却传入了不同类型的变量,编译器无法推导出T的类型,出现了推导错误。2.显示实例化,不用编译器推导T的类型,直接指定T的类型。

2026-01-06 02:28:11 681

原创 【c++】string类 (一)

C风格字符串(C-style strings)依然是以'\0'结尾的字符数组。这种表示方式与 C 语言中的字符串相同。例如:代码语言:javascriptAI代码解释在内存中,它是一个字符数组,最后一个字符是空字符'\0'。C++ 的标准库字符串(C++ 提供了一个类型,属于标准库的一部分。它管理自己的内存,并且不需要手动处理'\0'。使用更加方便和安全。例如:代码语言:javascriptAI代码解释处理字符串的长度、内存分配和释放,因此开发者可以专注于字符串的内容,而不必担心细节。

2026-01-06 02:27:29 689

原创 【c++】string类 (二) 模拟实现

string依然是一个线性的结构,所以说在实现的时候和以前实现的线性结构差不了多少,总体还是我们的老三样——_str,_size和_capacity。代码语言:javascriptAI代码解释本次实现string的时候,我们把一些简单的小函数在.h中直接定义,所以我们要注意链接错误,.h文件中的函数,如果定义在类里面,默认是内敛的,不会放到符号表,不用担心链接错误,但是如果是在类外面定义的函数,.h文件在test.cpp和string.cpp中都包含了一份,就会有两个这个函数,导致链接错误。

2026-01-06 02:26:48 699

原创 【C++】c++语法基础

域影响的是编译时语法查找⼀个变量/函数/ 类型出处(声明或定义)的逻辑,所有有了域隔离,名字冲突就解决了。所以 下⾯程序会编译报错。定义命名空间,需要用到namespace关键字,后面跟命名空间的名字,然后接⼀对{}即可,{}中 即为命名空间的成员。namespace本质是定义出⼀个域,这个域跟全局域各自独立,不同的域可以定义同名变量,所以不同的命名空间中同名的变量就不在冲突了。在c语言中函数被包含在不同的头文件中,但是,这样会出现一个问题,当我们定义的变量与头文件中的变量重名时,在调用时就会出现问题。

2026-01-06 02:26:12 581

原创 【c++】类和对象(上)

class为定义类的关键字,Date为类的名字,{}内的是类的内容简称为成员:类中的变量称为成员变量(属性),类中的函数称为成员函数(方法)。类末尾的分号不能省略。定义在类里面的成员函数默认为inline。C++中struct也可以定义类,C++兼容C中struct的用法,同时struct升级成了类,明显的变化是 struct中可以定义函数,⼀般情况下我们还是推荐用class定义类。代码语言:javascriptAI代码解释class Datepublic:_day = day;

2026-01-06 02:25:01 530

原创 【c++】类和对象 (中) (类的默认成员函数)

第一:我们要能判断默认生成的函数能否则满足我们的需求第二:如果默认生成的函数不能满足我们的需求,那么我们该如何实现这些函数实际上是八个,后面的后续补充。接下来我们依次来学习这些函数。

2026-01-06 02:23:51 641

原创 【c++】类和对象(下)

const类型成员必须在定义的时候就初始化,定义了之后不能改变注意这是错误演示 ,const 类型成员要在初始化列表中初始化。代码语言:javascriptAI代码解释//注意这是错误演示class Datepublic:,_month(5),_day(10)_n = 1;//const类型成员必须在定义的时候就初始化,定义了之后不能改变private:int _year;int _month;int _day;

2026-01-06 02:22:20 154

原创 【c++】vector的使用

vector。vector底层是一个动态开辟的数组,它为我们提供了许多的接口来管理数据。

2026-01-06 02:21:38 895

原创 【c++】模板进阶

在一些特定的情况,会用到常量;如我们需要一个定长的数组时。控制数组长度的类型时确定的(如size_t),这样我们只设置一个类型参数就可以了。代码语言:javascriptAI代码解释注意:非类型模板参数只能用于整型;不支持浮点数,类对象和字符串。c++20之后可以支持double作非类型模板参数。非类型模板参数支持缺省值:代码语言:javascriptAI代码解释。

2026-01-06 02:20:41 908

原创 【c++】继承

我们看到的Artiodactyla称为基类,也叫父类。Pig和Hippopotamus称为派生类,也称子类。继承方式分为三种:public,private,protected。这和三个访问限定符一样,但是功能却不相同。在访问限定符中, private和protected几乎没有差别,都不能由类外直接访问。而在继承方式这里,private与protected就有所区别了。

2026-01-06 02:19:55 650

原创 【c++】多态

多态是继承关系下的类对象,去调用同一函数,产生不同的行为。

2026-01-06 02:19:17 1007

原创 每天一个关于STL的知识:集合算法,你学会了吗 ?

本文是集合(set)上的算法,这里的“集合”一词是元素集合的一般含义,而不仅仅是std::set,这篇文章是STL学习资源的一部分,一次一点关于STL的知识。前提:范围已排序。即这篇文章提到的所有算法都要求输入范围是排序的。同样,它们的输出范围(当存在时)也是排序的。

2026-01-06 02:18:26 761

原创 使用libevent库实现惊人的高并发C++服务器!

libevent 旨在替换在事件驱动的网络服务器中找到的事件循环。应用程序只需要调用,然后动态添加或删除事件,而无需更改事件循环。目前,该控件支持/dev/pollkqueue()poll()和epoll()。内部事件机制完全独立于公开的事件 API,并且 libevent 的简单更新可以提供新功能,而无需重新设计应用程序。因此,Libevent 允许可移植应用程序开发,并提供操作系统上可用的最具可扩展性的事件通知机制。

2026-01-06 02:17:19 733

原创 【C++】IO流详解

C语言中我们用到的最频繁的输入输出方式就是 scanf() 和 printf()。scanf()printf()除此之外,。如下图所示:对的理解:1.可以I/O,低级 I/O 的实现依赖操作系统本身内核的实现,所以如果能够屏蔽这部分的差异,可以。2.可以,对于计算机而言是没有 “行” 这个概念,有了这部分,就可以定义“行”的概念,然后解析缓冲区的内容,返回一个“行”。

2026-01-06 02:15:40 625

原创 如何在C++的STL中巧妙运用std::find实现高效查找

这种差异对搜索有两个影响:在已排序的集合中查找非常快,通常在对数时间内,而在未排序的集合中查找通常在线性时间内。在已排序范围上显示的所有方法都按照等价性(与比较)来比较值,而在未排序范围上显示的方法则按照相等性(与==比较)来比较值。这篇文章探讨以下3个问题:在那里吗?在哪里?应该在哪里(对于排序范围)?

2026-01-06 02:14:54 749

原创 掌握C++ STL容器搜索技巧:实现高效和准确的数据访问

有三个原因:它更快:排序的容器,所有方法都受益于排序集合的快速对数搜索。此外,方法实现了最优算法。std::map和方法可以直接搜索键,而不像算法必须查找,因为它们的迭代器可以直接指向。它在某些情况下更正确:在排序容器(如map和set)中,所有方法都使用等价而不是相等,而某些算法(如std::count和std::find使用相等)则不是这样。现在究如何把它应用到 STL 提供的各种容器来深入了解更多细节。

2026-01-06 02:10:53 784

空空如也

空空如也

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

TA关注的人

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