C++
Kylee Kello
不一定每个人都会失败,但也不一定每个人都运气好。怎么做是你的自由。
展开
-
C++ - 斐波那契数列的递归与迭代
▷ 斐波那契数列的递归与迭代int f(int n){ switch(n){ case 0:{ return 1; break; }; case 1:{ return 1; break; }; default:{ return f(n-1)+f(n-2); break; }; }}int f1(int n){ int d...原创 2019-12-16 08:20:37 · 640 阅读 · 0 评论 -
C++(STL) - Alogrithm头文件
C++ STL:C++ Standard Template Library(C++标准模板库)⒈ 数组排序 sort + 数组倒置 reverse#include <iostream>#include<algorithm>using namespace std;bool compare(int a,int b){ return a>b;} /...原创 2019-11-17 12:46:59 · 995 阅读 · 0 评论 -
C++ - 插入排序、快速排序与归并排序
一:插入排序#include<iostream>#include<time.h>using namespace std;int * insertSort(int *data,int length){ int i,j; for(i=1;i<length;i++){ int temp = data[i]; for(j = i-1;j>=...原创 2018-12-24 16:23:36 · 1629 阅读 · 0 评论 -
C++ Vector容器与数组
▶ Vector表示对象的集合,属于模板类 ,因为其容纳着其他对象,所以又被称为"容器";注:对于数据的集合,如果不知道数据个数,使用vector优于数组;1> 数组不允许拷贝和赋值(vector支持)2> 数组的维度必须是常量表达式(vector支持变长)3> 数组不支持迭代器(vector支持)4> vector容器本身具有的方法v1.begin(...原创 2019-10-06 18:06:49 · 1538 阅读 · 0 评论 -
C++ Struct结构体
编译器:GCC注意事项:结构体中包含string类型数据时,不能使用结构体指针进行内存空间的分配与string类型数据的访问,可以直接使用结构体变量(不用手动分配内存);结构体中可以使用字符指针来存储字符串,此时可以使用结构体指针和结构体变量来访问内部数据;测试示例:#include<iostream>#include<malloc.h>usi...原创 2019-09-16 23:19:33 · 554 阅读 · 0 评论 -
C++ Template模板
函数模板扩展了函数重载并简化函数的重载:利用函数重载可以让多个函数共享一个函数名,只要所重载的函数的参数类型必须有所不同。但是,由于参数的类型不一样,虽然这些函数所完成的功能完全一样,也必须为每一个重载函数编写代码。类模板实际上是函数模板的推广:(类是对问题的抽象,而类模板是对类的抽象,即更高层次上的抽象)类模板称为带参数(或参数化)的类,也称为类工厂,它可用来生成多个功能相同而某些数据...原创 2018-12-14 14:49:49 · 3482 阅读 · 0 评论 -
C++ String字符串
环境:DEV C++标准:GNU C++11配置:(DEV C++ 配置 C++11标准)#include<iostream>using std::cin;using std::cout;using std::endl;using std::string;void func1(){ /* 测试字符串的结束符(ASCII:0) */ string...原创 2019-09-30 16:37:22 · 122 阅读 · 0 评论 -
C++ 一个函数调用其他.cpp文件中的函数
使用VC或VS创建C++项目的时候,会自动产生许多文件夹,其中有一个文件夹->源文件:在该文件下可以自定义许多.cpp文件,但是需要注意的是这里面的各个文件只能有一个文件中含有main()函数,而且各个文件中不能使用相同的函数名进行定义;那么要那么多文件放在项目中有什么用呢?当然这里C++是提供一个文件调用其他文件中函数的功能的,这就可以让我们自定义一个只包含main()...原创 2018-09-26 17:50:20 · 44327 阅读 · 3 评论 -
C++ 运算符与函数的重载
函数的重载:参数个数、类型或顺序不同函数都可以当做不同的函数来进行声明与使用 (函数的类型不能作为判断依据);举个例子:Print(int X)和Print(int X, int Y) 表示的是两个函数,这种使用方法就叫做函数的重载;运算符的重载 (本文主要探讨) :1> 一元运算符:!、++/--、-(负号) (文章最后介绍单目运算符的重载)2> 二元运...原创 2018-11-10 22:37:26 · 4357 阅读 · 0 评论 -
C++ NameSpace的定义与访问
什么是NameSpace(命名空间)?命名空间是一种封装形式,在不同的命名空间中可以定义相同名字的变量,互不于扰,系统能够区别它们,访问时使用域限定符限定即可。一:NameSpace的使用方法一:using namespace NAME;方法二:NAME::内部函数/变量;二:NameSpace的自定义namespace XXX{ void Func(){ ...原创 2019-03-02 09:51:17 · 6012 阅读 · 0 评论 -
C++ 头文件与Extern (外部函数调用)
⒈ 头文件引用⒉ extern调用同一个项目中的其他cpp文件中的函数▶【 main.cpp 】#include"day0915_3.h"extern void func_1();void func_2(){ cout << "Hello" << endl;}int main(){// void (*x)();// x = func_1...原创 2019-09-15 18:16:09 · 4597 阅读 · 0 评论 -
C++ 动态申请二维数组与二维数组传参
在C++中我们知道:int *ptr = new int; 这样可以动态分配一个int型指针int *ptr = new int[3]; 这样可以动态分配一个一维数组但是如何动态分配一个二维数组呢?像这样:int **pa = new int[3][3] ?测试一次 => 显然这种分配方式是不正确的:在尝试新的方法之前,我们需要首先了解二维数组在内存中的存储结构:...原创 2018-12-15 11:59:41 · 8239 阅读 · 7 评论 -
C++ - 实现上下左右功能选择菜单
☆主要用到的函数://这个函数是确认输出的具体位置,通过COORD结构体)SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), loc);//这个函数主要更改文字的前景色与背景色第二个参数0`15表示文字15种前景色SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), ...原创 2019-12-28 18:15:09 · 11981 阅读 · 1 评论 -
☆ C/C++ 即时刷新并显示当前时间
原先想着在原文章上进行修改,可是一直提示修改失败( ・´ω`・ )转之想一想,而且那篇文章中也没有把光标定位放在一个函数中调用,那就再另开一篇文章使用gotoxy()定位函数通过调用输出,顺便再复习以前的知识点。★源码(有bug):#include <iostream> #include <windows.h>#include <time....原创 2018-09-29 19:39:55 · 12438 阅读 · 12 评论 -
C++ 纯虚函数、抽象类与接口
包含至少一个纯虚函数的类视为抽象类;抽象类不能够实例化出对象,一般被当做基类使用(继承层次结构的较/最上层)。纯虚函数的声明:virtual ReturnType Function()= 0;纯虚函数仅仅提供了供其派生函数的一个同名函数,在抽象类中并没有其准确的定义;关于虚函数的文章:【点我即达】***************************************...原创 2019-01-05 14:27:10 · 1456 阅读 · 0 评论 -
☆ C++ 继承与派生(包括虚继承)
在友元类中我们知道,一旦在一个类中声明了友元类,那么友元类便拥有了访问该类的所有权限,可以在自己的类中对声明自己的类进行一系列操作。友元类主要目的是为了拓展友元类的功能,但是友元类的权限未免太多了,有什么办法可以削减其访问权限呢?继承与派生应运而生;本篇文章主要介绍如下内容:1> 公有继承(public)2> 私有继承(private)3> 保护继承(p...原创 2018-12-01 12:21:33 · 3809 阅读 · 0 评论 -
C++ 虚函数
注:虚函数和虚继承是两个概念,解决的问题也不同;虚函数:防止多重派生时,使用指针调用同名函数时以基类函数为准(非同名隐藏规则)//使用virtual来达到同名隐藏规则的效果B b(1, 2, 3, 4);A0 *a;a = &b;a->Show();//同名隐藏规则下的派生类函数直接输出自己的函数虚继承(虚基类):解决“121”类二义性问题(防止在多重...原创 2018-12-14 21:48:43 · 8441 阅读 · 0 评论 -
C++ 【重载】使用 "cout" 输出字符数组/字符指针的首地址
char *p = "Hello,World!";cout << p << endl; //输出Hello,World!cout << *p << endl; //输出H正确输出:cout << (void *)p << endl;**********************************...原创 2019-01-07 19:26:55 · 5572 阅读 · 2 评论 -
C++ "组合"与"派生"
"组合"与"派生"的使用原则:"组合"通常在希望新类有老类功能的时候使用,但是又不希望使用老类的接口。▶ 【 简单的例子 】#include <iostream>using namespace std;class P {public: void My_Special_talent() { //...... }};cla...原创 2019-01-05 20:07:49 · 1933 阅读 · 2 评论 -
C++ 多态性
多态的定义:① "一个名字,多个函数"② 同一个函数/运算符被定义几个不同的版本③多态指的是发出同样的消息被不同类型的对象接收时有可能导致完全不同的行为。多态的实现:① 函数的重载 【点我即达】② 运算符的重载 【点我即达】③ 虚函数(运行时的多态) 【点我即达】编译时的多态性:通过重载函数来实现运行时的多态性:通过继承和虚函数来实现...原创 2019-01-05 14:35:43 · 1554 阅读 · 0 评论 -
☆ C++ 友元函数与友元类
类的存在,简单点可以直接将其理解为对数据的读取权限进行了限制,虽然安全性有增强,但在处理实际问题的过程中也不免会遇到一些难处:举个例子【友元函数】:首先定义一个点类(Point) , 现在如何求两点之间的距离?因为一个Point类一般定义了一个点,而求距离则需要对两个点进行操作,这就需要求距离的函数要调用已定义的Point类,为了解决这个问题,友元函数应运而生,即在定义的类中声...原创 2018-11-10 19:48:29 · 4832 阅读 · 0 评论 -
C++ 【拷贝构造函数】深拷贝与浅拷贝
☆深拷贝函数主要是解决拷贝函数不能直接拷贝指针所指内存的数据的问题:其次,介绍一下什么是拷贝构造函数以及拷贝构造函数将在何时被调用?拷贝构造函数是一种特殊的构造函数,其形参是本类对象的引用,其作用是使用一个已经存在的对象来初始化一个新的同类的对象。何时被调用?① 当用类的对象去初始化另外一个对象的时候;② 当函数的形参为类对象时,调用该函数时,实参赋值给形参;③ 当函...原创 2018-12-14 22:30:35 · 3278 阅读 · 0 评论 -
C++ 面向对象的编程语言有哪些特点?
OOP:Object-Oriented Programming 面向对象编程AOP:Aspect-Oriented Programing 面向方面/切面编程① 面向对象编程语言是高级语言;② 将客观事物看做是有属性与状态的对象,通过抽象找出同一类对象的共同属性与行为,进而封装成类;③ 便于更加直接地描述客观世界中存在的事物以及他们之间的关系;④ 可以通过类的继承和多态实现代...原创 2019-01-05 11:53:09 · 7190 阅读 · 0 评论 -
C++ 常数据成员、常成员函数和常对象
首先给出一个例子简单理解const修饰数据变量的基本工作原理:#include <stdio.h>int main(){ const int a = 250; int *ptr = (int *)&a; *ptr = 360; printf("*ptr = %d\n",*ptr); printf("ptr = %p\n",ptr); printf("...原创 2019-01-04 23:54:51 · 9083 阅读 · 1 评论 -
C++ 实现MyString类
功能实现:<基本功能>1> 实现头文件的封装:MyString.h2> 缺省构造函数对字符串的初始化( MyString() )3> 使用构造函数初始化字符串的另外两种方式 * 2( 动态指针+拷贝构造函数 )4> 析构函数( 释放动态申请的字符串空间 )5> 重载输出运算符( << )6> 重载赋值运算...原创 2018-12-08 00:21:45 · 14864 阅读 · 3 评论 -
☆ C/C++中链栈与链队
从单链表入手分析就可以看到链队与链栈的本质,他俩其实是单链表的特殊形式:链栈:指定尾部插入尾部删除的单链表链队:指定尾部插入头部删除的单链表明白了这两个道理之后,就可以完全使用单链表流畅的写出链栈与链队了~(✪ω✪)嗯?好吧好吧,再给出一个传送门吧------>>>点我即达单链表教程篇(^_−)☆ 在我的前几篇文章中也写到了栈------>...原创 2018-09-29 13:41:18 · 2982 阅读 · 1 评论 -
C++ MFC人事管理系统
MFC:Microsoft Foundation Classes (微软基础类库)基本思路:使用Microsoft Access建立数据库,然后使用VS2015其进行连接与一些基本操作:显示、增加、删除、排序、筛选<文章最后会给出本工程文件压缩包的下载地址>*******************************************************...原创 2018-12-21 17:31:43 · 8705 阅读 · 15 评论 -
C++ 扑克牌发牌程序
问题描述:一副扑克有52张牌,打桥牌时应将牌分给四个人。请设计一个程序完成自动发牌的工作。要求:黑桃用S(Spaces)表示;红桃用H(Hearts)表示;方块用D(Diamonds)表示;梅花用C(Clubs)表示。提示:黑桃标记 的ASCII码为6, 红桃标记的ASCII码为3, 方块标记的ASCII码为4,梅花标记的ASCII码为5。要求将测试序列结果存入1.txt文件中。 ...原创 2018-12-11 20:03:01 · 12179 阅读 · 5 评论 -
C++ 异常捕捉与处理(try...catch...)
首先举一个异常处理的例子:string str = "0123456789";char ch1 = str[100]; //数组越界,但是不提醒,程序运行立即崩溃cout << ch1 << endl; char ch2 = str.at[100]; //数组越界,使用成员函数at()来进行异常捕获,程序无法运行cout <<...原创 2018-12-07 17:02:54 · 11990 阅读 · 1 评论 -
☆ C++ 浮点型数据使用 "cout" 输出
最近在使用printf()输出浮点数的时候,突然想到可不可以使用cout输出呢?于是果断的去尝试了一下:bang~ 后面的0都不见了?下面就来解决这个问题:****************************************************************************************************************...原创 2018-10-18 19:36:24 · 13054 阅读 · 0 评论 -
C/C++ 折半查找与顺序查找【对比分析】
在线性表的顺序存储结构中用到的查找方式莫过于顺序查找和折半查找;尽管顺序查找的时间复杂度为O(n), 折半查找的时间复杂度为O(log2n),相比之下折半查找就显得效率更高,但是二者使用的场合不同,需要满足的条件也不同,于是乎优劣之分便不再那么重要。 首先博主对二者的效率做了一个简单的测试:对已经进行排序后的含有10000的随机数的数组分别进行顺序查找与折半查找,查找的值随机赋...原创 2018-11-29 20:28:28 · 6883 阅读 · 0 评论 -
☆ C++ 类的静态成员变量与静态成员函数
什么是静态成员变量?又为什么出现?在C语言中称之为静态变量,因为C++中增加了类的概念,所以称之为静态成员变量。声明方式 (在一般变量的声明前加上static):static int/char a 作用:static 修饰的变量在它所在的函数生存期结束后在该函数体内部依然保存其原有的值 (看个小例子);#include <bits/stdc++.h>usin...原创 2018-11-10 23:39:44 · 1514 阅读 · 0 评论 -
☆ C/C++ 十进制转二进制
* 因为没有实质运用C++的OOP面向对象编程的思想,虽使用的部分C++语法,但程序本质还是C语言:在C中我们可以很简单的实现十进制到十六进制与八进制之间的转换(%x/%X、%o),但是却没有直接的方法直接将十进制转换为二进制,这就需要我们自己编写相应的功能函数去实现转化;本篇文章将介绍两种转化方法:1> 短除法(正存逆读)2> 转换为八进制,然后使用二进制数据对点...原创 2018-11-06 22:11:23 · 3845 阅读 · 0 评论 -
☆ C/C++ 字符串的排序、粘贴与转型
因为代码不是在一个文件中,不方便贴在博客页面上,代码我已上传到我的资源中,需要的可以直接下载使用:资源地址:https://download.csdn.net/download/qq_42292831/10734117代码基于VS2010编写,在VS2010以下版本无法直接运行,但是代码.cpp文件还是可以直接分开使用的;********************************...原创 2018-10-20 19:04:50 · 5208 阅读 · 0 评论 -
☆ C/C++ 模拟输入密码(控制台暗文输出)
偶然间遇到了getch()函数,突然间真的有点茫然~于是,一不做二不休,了解它的详细使用方法和它类似的函数的使用: ****************************************************************************************************************************************...原创 2018-10-18 13:31:57 · 7416 阅读 · 0 评论 -
☆ C/C++中使用结构体数组->排序(姓名+学号+分数)
使用单链表进行排序见上一篇文章,这两篇文章相辅相承; 传送门:点我即达(。・ω・。) **************************************************************************************************************************************** ★首先附上一系列...原创 2018-09-30 16:44:19 · 7513 阅读 · 0 评论 -
☆ C/C++中使用单链表与结构体数组->排序(姓名+学号+分数)
对于单链表的排序,这篇文章介绍的是交换节点数据域的方法。在写的时候仍然遇到了一些很奇怪的问题~(百思不得其解~)(ㄒoㄒ)*--->>>已解决~对于那些相应的问题会附在这篇文章的最后方,如果解决 ,后续会在下方附加解决方案。 ****************************************************************...原创 2018-09-29 00:38:08 · 8186 阅读 · 0 评论 -
☆ C/C++回文字符串的判定(使用链栈与队列)
在上一篇文章中我提到了如何去写链栈与链队,但是任何代码都是要有用处才可以吸引我们的兴趣,给我们继续前进的动力。那么下面就来介绍如何使用链栈来解决回文数问题。 时空门--->>>链栈与链队(^_−)☆ *******************************************************************************...原创 2018-09-29 13:50:30 · 7786 阅读 · 0 评论