study C/C++
文章平均质量分 82
掌握C语言和C++语言
禊月初三
且视他人之疑目如盏盏鬼火,大胆去走你的夜路。
展开
-
C++ 标准库类型map&set
Compare: 比较器的类型,map中的元素是按照key来比较的,缺省情况下按照小于来比 较,一般情况下(内置类型元素)该参数不需要传递,如果无法比较时(自定义类型),需要用户自己显式传递比较规则(一般情况下按照函数指针或者仿函数来传递)(2)Key-Value 模型 ,如: ①统计文件中每个单词出现的次数,统计结果是每个单词都有与其对应的次数:< 单词,单词出现的次数 > ②梁山好汉的江湖绰号:每个好汉都有自己的江湖绰号。使用平衡搜索树(即红黑树)作为其底层,容器中的元素是一个有序的序列。原创 2024-04-28 13:57:58 · 537 阅读 · 0 评论 -
C++ 多态
多态概念:对于同一个行为对于不同的对象,有不同的表现。原创 2024-04-25 14:49:37 · 894 阅读 · 0 评论 -
C++ 继承
(在子类成员函数中,可以。原创 2024-04-20 17:22:57 · 1033 阅读 · 1 评论 -
C++ 面向对象
让某种类型对象获得另⼀个类型对象的属性和方法。原创 2024-04-20 13:56:20 · 948 阅读 · 0 评论 -
C++ 迭代器
要访问顺序容器和关联容器中的元素,需要通过“迭代器(iterator)”进行。迭代器是一个变量,相当于容器和操纵容器的算法之间的中介。迭代器可以指向容器中的某个元素,通过迭代器就可以读写它指向的元素。原创 2024-04-14 14:12:10 · 296 阅读 · 0 评论 -
C++ STL
C++ STL(标准模板库)是一套功能强大的 C++ 模板类,提供了通用的模板类和函数,这些模板类和函数可以实现多种流行和常用的算法和数据结构,如向量、链表、队列、栈。原创 2024-04-10 20:58:50 · 274 阅读 · 0 评论 -
C++ 标准库类型priority_queue
Type就是数据类型,Container就是容器类型(Container必须是用数组实现的容器,比如vector,deque等等,但不能用 list。STL里面默认用的是vector),Functional就是比较的方式。当需要用自定义的数据类型时才需要传入这三个参数,使用基本数据类型时,只需要传入数据类型,默认是大堆。//升序队列,小顶堆//降序队列,大顶堆//greater和less是std实现的两个仿函数。原创 2024-04-10 20:19:18 · 423 阅读 · 0 评论 -
C++ 标准库类型stack&queue
【代码】C++ 标准库类型stack&queue。原创 2024-04-05 13:01:15 · 373 阅读 · 0 评论 -
C++ 标准库类型List
创建一个没有任何元素的空 list 容器:创建一个包含 n 个元素的 list 容器://创建lt容器,其中包含10个元素,每个元素的值都为相应类型的默认值(int类型的默认值为0)创建一个包含 n 个元素的 list 容器,并为每个元素指定初始值://创建了一个包含10个元素并且值都为5个lt容器。在已有 list 容器的情况下,通过拷贝该容器可以创建新的 list 容器://注意:采用此方式,必须保证新旧容器存储的元素类型一致。原创 2024-04-01 13:47:52 · 1203 阅读 · 0 评论 -
C++ 标准库类型vector
vector():创建一个空vector//创建一个空vectorvector(int nSize):创建一个vector,元素个数为nSize//创建10个元素的vectorvector(int nSize,const t& t):创建一个vector,元素个数为nSize,且值均为t//创建10个元素的vector,并初始化.vector(const vector&):复制构造函数//复制构造函数。原创 2024-03-30 13:21:31 · 617 阅读 · 0 评论 -
C++ 标准库类型string
string (1)复制赋值操作符C字符串赋值操作符单个字符赋值操作符初始化列表赋值操作符move (5)移动赋值操作符/*复制赋值操作符 (Copy Assignment Operator): 复制赋值操作符 = 用于将另一个string对象的内容复制到当前对象中。如果可能的话,它应该删除当前对象中已有的内容,并分配新的内存来存储复制的数据。*/// 删除当前字符串的内容// 分配新的内存并复制内容。原创 2024-03-08 20:32:16 · 929 阅读 · 4 评论 -
C++模板
泛型编程:编写与类型无关的通用代码,是代码复用的一种手段。模板是泛型编程的基础。模板分为函数模板和类模板。原创 2024-03-02 12:20:26 · 376 阅读 · 4 评论 -
C++类&对象
C语言典型的面向过程的,关注的是过程,分析出求解问题的步骤,通过函数调用逐步解决问题。C++是典型的基于面向对象的,关注的是对象,将一件事情拆分成不同的对象,靠对象之间的交互完成。类声明放在.h文件中,成员函数定义放在.cpp文件中注意:成员函数名前需要加类名: :成员变量命名规则(推荐):在成员变量前加对于日期类对象,我们可能会忘记调用Init函数进行初始化,C++为了解决这个问题,引入构造函数进行初始化。int _month;原创 2024-02-27 21:58:39 · 819 阅读 · 4 评论 -
C++入门
定义命名空间,需要使用到namespace关键字,后面跟命名空间的名字,然后接一对{}即可,{} 中即为命名空间的成员。// 命名空间中可以定义变量/函数/类型int val;一个命名空间就定义了一个新的作用域,命名空间中的所有内容都局限于该命名空间中//命名空间还可嵌套使用int a;int b;int c;int d;在同一个作用域内,可以声明几个功能类似的同名函数,但是这些同名函数的形式参数(指参数的个数、类型或者顺序)必须不同。您不能仅通过返回类型的不同来重载函数。原创 2024-01-26 21:36:57 · 430 阅读 · 2 评论 -
Study C/C++
学习C语言/C++原创 2023-03-31 23:26:49 · 150 阅读 · 2 评论 -
C语言入门
当局部变量和全局变量同名的时候,局部变量优先使用。在书写连续多个问号时使用,防止他们被解析成三字母词。用于表示一个反斜杠,防止它被解释为一个转义序列符。变量必须先定义,才可以使用。一个工程中main函数有且仅有一个。用于表示一个字符串内部的双引号。输出 printf。输入 scanf。main函数是程序的入口。原创 2023-04-17 20:00:33 · 87 阅读 · 3 评论 -
C语言---判断&循环结构
当switch表达式的值并不匹配所有的case标签的值时,这个default子句后面的语句就会执行。所以,每个switch语句中只能出现一条default子句。但是它可以出现在语句列表的任何位置,而且语句流会像贯穿一个case标签一样贯穿default子句。If-else语句内部也可以是if-else语句。的实际效果是把语句列表划分为不同的分支部分。continue是用于终止本次循环的。while中的break是用于。,用于初始化循环变量的。,用于判断循环时候终止。,用于循环条件的调整。原创 2023-04-18 19:32:28 · 164 阅读 · 8 评论 -
C语言---函数
形式参数是指函数名后括号中的变量,因为形式参数只有在函数被调用的过程中才实例化(分配内存单元),所以叫形式参数。形式参数当函数调用完成之后就自动销毁了。因此形式参数只在函数中有效。无论实参是何种类型的量,在进行函数调用时,它们都必须有确定的值,以便把这些值传送给形参。自定义函数和库函数一样,有返回值类型、函数名和函数参数。实参可以是:常量、变量、表达式、函数等。真实传给函数的参数,叫实参。对形参的修改不会影响实参。使用库函数,必须包含。形参是实参的临时拷贝。原创 2023-07-01 11:36:10 · 45 阅读 · 0 评论 -
C语言---数组
语言本身是不做数组下标的越界检查,编译器也不一定报错,但是编译器不报错,并不意味着程序就是正确的,所以程序员写代码时,最好自己做越界的检查。标准支持了变长数组的概念,数组的大小可以使用变量指定,但是数组不能初始化。,就是数组越界访问了,超出了数组合法空间的访问。数组名是数组首元素的地址。数组是使用下标来访问的,下标是从。数组的大小可以通过计算得到。个元素,最后一个元素的下标就是。数组的下标是有范围限制的。数组名,取出的是数组的地址。数组名,数组名表示整个数组。二、数组在内存中的存储。,计算整个数组的大小,原创 2023-07-01 17:16:10 · 51 阅读 · 0 评论 -
C语言---操作符
整个表达式的结果是最后 一个表达式的结果。接受一个或者多个操作数:第一个操作数是函数名,剩余的操作数就是传递给函数的参数。算术移位 左边用原该值的符号位填充,右边丢弃。不能创建临时变量(第三个变量),实现两个整数的交换。10.下标引用、函数调用和结构成员。=(可与其他操作符结合形成复合赋值符)10. 下标引用、函数调用和结构成员。操作数的类型长度(以字节为单位)相同位都为1,操作结果该位才为1。相同位有一个为1,操作结果就为1。原创 2023-07-03 13:21:38 · 63 阅读 · 1 评论 -
C语言---指针
1.指针是什么2.指针和指针类型3.野指针4.指针与数组5.指针关系运算6.二级指针7.指针数组。原创 2023-07-04 00:03:35 · 68 阅读 · 2 评论 -
C语言---自定义类型(结构体、位域、枚举、共用体)
1.结构体类型的声明2.访问结构体成员3.结构体传参。原创 2023-07-04 13:03:56 · 79 阅读 · 3 评论 -
C语言---数据存储
char//字符数据类型short//短整型int//整形long//长整型long long//更长的整形float//单精度浮点数double//双精度浮点数整形charshortintintintsigned intlongintint浮点型floatdouble自定义类型数组类型结构体类型struct枚举类型enum联合类型union指针类型int *pi;char *pc;原创 2023-07-06 16:49:26 · 62 阅读 · 5 评论 -
C语言---字符串函数和内存函数的实现
目录求字符串长度strlen长度不受限制的字符串函数strcpystrcatstrcmp长度受限制的字符串函数介绍strncpystrncatstrncmp字符串查找strstrstrtok内存操作函数memcpymemmove。原创 2023-07-11 17:32:02 · 72 阅读 · 7 评论 -
C语言---动态内存管理
- 指针指向一个要释放内存的内存块,该内存块之前是通过调用 malloc、calloc 或 realloc 进行分配内存的。的时候,原有空间之后没有足够多的空间时,扩展的方法是:在堆空间上另找一个合适大小的连续空间来使用,将之前的数据拷贝过来,并将旧地址释放掉。如果大小为 0,且 ptr 指向一个已存在的内存块,则 ptr 所指向的内存块会被释放,并返回一个空指针。如果参数 ptr 指向的空间不是动态开辟的,那free函数的行为是未定义的。这个函数向内存申请一块连续可用的空间,并返回指向这块空间的指针。原创 2023-10-18 12:24:17 · 58 阅读 · 1 评论 -
C/C++程序内存分配的几个区域
1. 栈区(stack):在执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执行结束时这些存储单元自动被释放。栈内存分配运算内置于处理器的指令集中,效率很高,但是分配的内存容量有限。栈区主要存放运行函数而分配的局部变量、函数参数、返回数据、返回地址等。2. 堆区(heap):一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收。程序结束后由系统释放。实际上普通的局部变量是在栈区分配空间的,栈区的特点是在上面创建的变量。,数据段的特点是在上面创建的变量,直到程序结束才销毁。原创 2023-10-18 13:52:27 · 211 阅读 · 6 评论