自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 太极1:static和const关键字部分作用

static关键字:(1)函数体内static变量的作用范围为该函数体。该变量的内存只被分配一次,因此该值在下次调用时仍维持上次的值(2)在模块内的static全局变量可以被模块内所有函数访问,但是不能被模块外其他函数访问(3)在模块内的static函数只可被这一模块内的其他函数调用,这个函数的使用范围被限制在声明它的模块内(4)在类中的static成员变量属于整个类所拥有,对类的所有对象只有一份拷贝(5)在类中的static成员函数属于整个类所有,这个函数不接收this指针,因而只能访问类的st

2020-12-31 15:52:05 116

原创 太极1:STL&红黑树1

1.STL中的容器:容器:以模板的方式对常见数据结构进行封装----->作用:组织数据分类:序列式容器、关联式容器底层为红黑树结构:map、set、multimap、multiset底层为哈希结构:unorder_map、unordered_set、unordered_multimap、unorder_multisetmap、set、multimap、multiset共同点:1.底层结构都为红黑树2.使用迭代器进行遍历,中序遍历3.插入/查找/删除—>logN不同点:map:元

2020-12-28 17:20:44 116

原创 太极1:排序基础

1.排序:就是使一串记录,按照其中的某个或某些关键字的大小,递增或递减的排列起来的操作2.稳定性:某组数据中,a1==a2,a1在a2之前,排完序后a1还在a2之前,则稳定,如果a1此时在a2之后,则不稳定3.内部排序和外部排序:内部排序:在排序期间,需要将待排序元素整体添加到内存中排序外部排序:在排序期间,不需要将待排序元素整体添加到内存中(如归并排序)比较类型的排序:插入方式:插入排序 希尔排序选择排序:直接选择排序 堆排序交换排序:冒泡排序 快速排序归并排序非比较排序:计数排

2020-12-28 16:34:13 100

原创 太极1:继承和多态2

1.概念:同一个方法,在不同的场景下,可以表现出不同的行为。2.分类:静态多态、动态多态静态多态(静态绑定、静态联编、早绑定):在编译期间,就可以确定函数的行为,即:具体调用那个函数,体现:函数重载、模板;动态多态(动态绑定、动态联编、晚绑定):在程序运行时,根据基类的指针或者引用指向不同类的对象,调用对应的虚函数—在程序运行时,确定函数具体的行为。3.动态多态实现条件—(前提:继承体系下)a.基类中必须要有虚函数,子类必须要对基类中的虚函数进行重写b.虚函数调用:必须通过基类的指针或者引用来调

2020-12-25 03:43:51 268

原创 太极1:继承和多态

封装:隐藏对象的属性和实现细节,仅对外公开接口和对象进行交互,将数据和操作数据的方法有机结合。继承:其是面向对象程序设计使代码可以复用的最重要手段,它允许程序员在保持原有特性的基础上进行扩展,增加功能,这样产生的新的类,叫做派生类,继承是类设计层次的复用。C++中struct和class的区别:class的默认访问+继承权限是private,struct是public,因为要兼容C语言赋值兼容规则:1.可以使用子类对象给基类对象进行赋值,反之则不行2.可以使用基类的指针或者引用指向子类对象,反之

2020-12-25 03:26:10 135

原创 太极1:迭代器&list

迭代器:迭代器实际上就是一个指针(string/vector)+对指针进行封装迭代器失效—>指针失效---->指针指向的空间不能访问---->指针指向的空间被释放了对vector来说在上面情况下迭代器会失效:1.所有可能会导致扩容的操作:如:reserve/resize()/insert()/push_back()/assign2.iterator erase(iterator pos);3.clear()/swap 如何解决:在任何有可能会引起迭代器失效的操作之后

2020-12-06 10:27:35 109

原创 太极1:STL:vector和string

STL:什么是STL?STL是C++中标准模板库------------standard template library实际上STL就是对常见数据结构(线性表(顺序表、链表)+栈和堆列+二叉树+哈希)以模板的方式进行了封装目的:替用户组织数据里面和增加了一些非常灵活和通用的算法----->主要是对数据进行操作的sort/reverse------------------------------分界线-------------------------------------STL对常见的

2020-12-02 02:52:57 214

原创 太极1:C++动态内存管理/模板

C/C++程序运行起来之后,内存划分的区域。每个区域的作用内核空间:放置操作系统相关的代码和数据用户不能直接进行操作—可以通过调用系统提供的api函数栈:与函数调用相关---------局部变量、参数、寄存器信息、返回值内存映射段(文件映射、动态库、匿名映射):静态库、动态库等堆:malloc/calloc/realloc new/new[]----->默认数据段(全局数据、静态数据):全局变量、被static修饰的变量代码段(可执行代码/只读常量):程序中的代码 常量malloc/c

2020-11-30 18:06:31 149

原创 太极1:深浅拷贝 const和static

浅拷贝:表层对其进行引用,实际指向同一块内存深拷贝:当发生拷贝构造或者赋值的时候,让每个对象都拥有自己独立的资源写时拷贝:浅拷贝+引用计数(记录资源被多少个对象在共享)+当多个资源共享资源时,只要有一个对象修改资源中的内容,将该对象独立出来(给该对象重新分配空间)----------------------------分界线---------------------------------------运算符重载:为了增加代码的可读性而给出的除了 .* :: sizeof ?: .

2020-11-30 17:35:41 107

原创 太极1:析构函数拷贝构造函数

析构函数:概念:与构造函数相反,在对象销毁时,由编译器自动调用,完成对象中资源的清理工作。不负责回收对象的空间!!!!只负责将对象空间中的资源清理干净!!!局部对象,空间在栈上—>当函数运行结束后,栈帧被系统回收,对象的空间则也被回收了特性:1.名字是构造函数前面加~2,没有返回值类型3.没有参数–即:析构函数不可重载,一个类最多只有一个析构函数4.在对象销毁时,由编译器自动调用,完成对象中资源的清理工作5.语法:用户没有显式实现,到编译器会生成一份默认的析构函数6.类中没有涉及

2020-11-30 13:27:59 74

原创 太极1:构造函数

面向对象和面向过程的区别:(C++和C语言的区别)面向过程:是以函数驱动的,通过函数间的相互调用次序来完成事情,重视完成该事情的步骤。面向对象:不关注事情的步骤,关心如何通过对象之间的交互将事情完成C++和C语言区别:1.面向对象和面向过程2.C++编译器对语法的检测更加的严格3.C++语言更加的人性化4.支持面向对象:封装、继承、多态5.STL6.C++更合适做比较复杂、大的工程------------------------------分界线---------------------

2020-11-30 13:09:45 220

原创 太极1:宏&const

宏的优缺点:1.宏常量:优点:一改全改常量名字具有一定的含义------MAX_SIZE 100缺点:宏常量没有类型的----不会参与到类型检测中----代码的安全性降低,而且一旦编译报错,报错的位置不准确2.宏函数优点:宏函数并不是一个真正的函数,在预处理阶段,预处理器已经将宏函数采用宏体进行替换了,少了函数调用参数压栈,开辟栈帧,返回等等的开销,代码的运行效率提高了。缺点:1.在实现时,可能会比较麻烦,要导出加括号2.宏函数也没有参数类型—不会有参数类型检测----安全性不高3.宏函

2020-11-29 11:13:26 78

原创 太极1:函数重载、引用

函数传参:传值、传地址、传引用缺省参数:概念:在声明/定义一个函数的时候,给函数的参数设置一个默认值,当用户对函数进行调用的时候,如果传递了实参,则使用实参,如果没有传递参数,则使用设置的默认值。“类似备胎”全缺省参数:所有函数都带默认值半缺省参数:一部分参数带默认值(必须从右向左给!!!)特性:1.缺省参数必须从右向左给出2.不能再函数声明和定义的位置同时给出3.C语言不支持---------------------------------分界线--------------------

2020-11-29 10:52:17 197

原创 太极1:移位位图

运算符优先级:単目运算符>双目运算符>移位>大与小移位操作:逻辑移位和算术移位逻辑移位:针对无符号类型的数据左移:丢弃最高位,低位补0右移:丢弃最低位,高位补0算术移位:针对的是有符号类型的数据左移:丢弃最高位,低位补0右移:丢弃最低位,如果该数字是正数高位补0,如果是负数高位补1给一个非空的整数数组,某个元素只出现了一次,其余元素均出现了两次,找出这个元素答:将所有数据全部异或,得到的值即为该元素----------------------------------

2020-11-24 15:52:04 115

原创 太极1:结构体对齐

结构体:一种新的自定义类型如果不考虑内存对齐,则是把所占的大小加起来,好处比较节省空间,坏处查找、使用的时候很不便如何进行对齐:1.使结构体中每个成员都在对齐的地址上对于剩余变量对齐:min(该变量类型,默认对齐数)如何检测该变量相对于结构体起始位置的偏移量是不是min的整数倍如果是,则已经对齐了,不用管如果不是,则需要在它的后面补一些字节,使它是min的整数倍2.结构体整体对齐调整为最小整数倍----------------------分界线----------------------

2020-11-22 11:10:10 76

原创 太极1:数组和指针

指针:一种数据类型,储存一个地址,地址就是指针,指针就是地址32位:4字节 64位:8字节int array[]={1,2,3,4,5,6,7,8,9,0};int* pa=array;即 printf("%d\n", *array);printf("%d\n", *pa);打印出来都是1pa++; 让指针向后偏移即此时指针指向数组为2的位置,此时printf("%d\n",*pa);打印出来结果为2pa+3 同上int* pa1=array;int* pa2=array+

2020-11-21 18:49:49 114

原创 Base64 HTML

Base64 HTML代码: base64在线转换工具 <style type="text/css"> /*清除浏览器的默认样式*/ *{ margin: 0; padding: 0; } /* * 定义选择栏样式 */ .select_menu{ height: 30px; width: 800px; background-color: cornflowerblue; margin: 30

2020-09-16 15:15:40 119

原创 Base64 VS代码

引用:httplib.h://// httplib.h//// Copyright © 2020 Yuji Hirose. All rights reserved.// MIT License//#ifndef CPPHTTPLIB_HTTPLIB_H#define CPPHTTPLIB_HTTPLIB_H/*Configuration*/#ifndef CPPHTTPLIB_KEEPALIVE_TIMEOUT_SECOND#define CPPHTTPLIB_KEEP

2020-09-16 15:14:36 738

原创 C++ 11

#include#include#include#include<string.h>#include#includeusing namespace std;//class Point//{//public:// Point(int x = 0, int y = 0)// :_x(x)// , _y(y)// {// cout << “X Y” << endl;// }//private:// int _x;// int _y;/

2020-07-28 22:30:16 67

原创 BinaryTreecpp

#include#includeusing namespace std;templatestruct BSTNode{T _val;BSTNode* _left;BSTNode* _right;BSTNode(const T& val = T()) : _val(val) , _left(nullptr) , _right(nullptr){}};templateclass BSTree{public:typedef BSTNode Node;Node*

2020-07-06 20:54:48 117

原创 inherit

#include#includeusing namespace std;//class Person//{//public:// void Print()// {// cout << “name” << _name << endl;// cout << “age” << _age << endl;// }//public:// int _id;////protected 类外不可见,类内部和子类可见//p

2020-07-05 11:47:40 89

原创 继承

#include#includeusing namespace std;//class Person//{//public:// void Print()// {// cout << “name” << _name << endl;// cout << “age” << _age << endl;// }//public:// int _id;////protected 类外不可见,类内部和子类可见//p

2020-07-01 21:27:20 82

原创 list

#include#includeusing namespace std;template void printLst(const list& lst){for (const T& e : lst)cout << e << " ";cout << endl;}void test(){list lst;list<char> lst2(5, 'a');char str[] = "12345";list<char

2020-06-23 19:48:45 120

原创 string 类

#include#include<stdio.h>#include<assert.h>using namespace std;namespace bit{class string{public:typedef char* iterator;string(const char* str = “”){_size = strlen(str);_capacity = _size;_str = new char[strlen(str) + 1];strcpy(_s

2020-06-11 21:13:09 115

原创 C++ string

#include#include<stdio.h>#include<string.h>#includeusing namespace std;void test(){string str;//""string str2(“123”);//“123”string str3 = “abc”;//“abc”string str4(“0123456789”, 5);//“01234”string cpy(str3);//“abc”string str5(str4, 2

2020-06-02 11:24:09 97

原创 memory managernent

#include<stdio.h>#include#include<stdlib.h>using namespace std;//void test()//{// int array[10];// int array2[10] = { 1,2,3 };// int array3[10] = { 0 };//}//void test1()//{// //malloc Ö»½øÐпռäÉêÇ룬²»½øÐгõʼ»¯// int* ptr = (int*

2020-06-01 09:21:16 475

原创 Date 类

#include#include<stdio.h>using namespace std;class Date{public:// 获取某年某月的天数int GetMonthDay(int year, int month){static int days[13] = { 0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };int day = days[month];if (month == 2 && (((

2020-05-27 11:34:19 60

原创 Cpp this指针 构造函数

#include#include<stdio.h>using namespace std;class Date{public://void Display(Date* const this) 始终指向当前调用此函数的对象,指向不会发生改变//this指针类型:类类型 *const//this指针只存在于成员函数中//this始终作为成员函数的第一个形参//编译器自动传递,不需要显式定义这个参数//this 不是类的成员,只是一个函数形参,一般存在栈上,一般会做优化,存在寄存

2020-05-21 19:17:53 212

原创 something about Cpp begin

#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>#includeusing namespace std;namespace bite{void print(int a){printf("%d \n", a);}int a;int b;namespace bite_69{void fun1(int a){printf("%d \n", a);}int a;int b;}}namespace bite{i

2020-05-20 08:21:53 71

原创 双向链表

void listInit(List * lst){//´´½¨Ò»¸öÍ·½áµã£¬¹¹³ÉÑ­»·½á¹¹lst->_header = creatNode(0);lst->_header->_next = lst->_header;lst->_header->_prev = lst->_header;}Node* creatNode(Type data){Node* node = (Node*)malloc(sizeof(Node));no

2020-05-09 19:45:03 79

原创 内存对齐

#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>#include<string.h>//´ËʱÕâ¸ö×Ô¶¨ÒåÀàÐ;Íλstruct Student//struct Student {// char name[1024];// int age;//};struct S1 {char c1;int...

2020-03-17 09:56:42 368

原创 几种常用的字符处理函数

1.不能用赋值语句将一个字符串常量直接赋给一个字符数组,应该为使用strcpy( )函数例如:str=“abcd”;是错误的应改为:strcpy(str,“abcd”)2.两个数组不能直接比较大小,应使用strcmp( )函数例如:if(str1>str2) printf(“1”)应改为:if(strcmp(str1,str2)=1 printf(“1”);3.strcat() ...

2020-03-16 15:41:50 586

原创 指针相关习题

一级指针的简单笔试题:void print(int *p, int sz){int i = 0;for (i = 0; i < sz; i++){printf("%d\n", *(p + i));}}int main(){int arr[10] = { 1,2,3,4,5,6,7,8,9 };int *p = arr;int sz = sizeof(arr) / s...

2020-03-16 10:27:58 130

原创 sizeof和strlen练习题

#include <stdio.h>#include <string.h>int main() {/////////////////////////////////////////// 第一组/////////////////////////////////////////// char[6]// char arr[] = { 'a', 'b', 'c', '...

2020-03-16 10:20:42 114

原创 自定义打印杨辉三角

自定义打印杨辉三角#define _CRT_SECURE_NO_WARNINGS#include <stdio.h>#include <string.h>void PrintYanghui(int n){int arr[20][20] = { 0 };for (int row = 1; row <= n; row++){for (int col = ...

2020-03-15 17:08:35 115

原创 通过函数来实现两个数的交换

#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>#include<stdlib.h>void change(int i, int j){int k = i;i = j;j = k;printf(“交换后为:\n”);printf("%d\n", i);printf("%d\n", j);}int mai...

2019-11-27 16:15:46 268

原创 打印任意乘法表

#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>#include<stdlib.h>//打印随意的乘法口诀表void Chengfabiao1(int a){int x;int y;int z;for (x = 1; x <= a; x++){for (y = x; y <= a; y++)...

2019-11-27 16:08:18 262

原创 计算器

仅适合整数的加减乘除#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>#include<stdlib.h>int add(int a, int b){return a + b;}int sub(int a, int b){return a - b;}int mul(int a, int b){retu...

2019-11-27 10:11:40 74

原创 五子棋

棋盘大小为5乘5通过坐标进行下棋,玩家先手,电脑随机#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>#include<stdlib.h>#include<time.h>#define MAX_ROW 5#define MAX_COL 5char chess_board[MAX_ROW][MAX_C...

2019-11-21 09:54:39 306

原创 三子棋游戏

三子棋游戏通过坐标进行下棋电脑随机落子玩家先进行落子#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>#include<stdlib.h>#include<time.h>#define MAX_ROW 3#define MAX_COL 3char chess_board[MAX_ROW][MAX...

2019-11-20 16:13:22 115

空空如也

空空如也

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

TA关注的人

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