C++
C++常用知识查缺补漏
Mongo_girl
哈哈哈哈哈哈哈哈
展开
-
正则匹配
对字符串操作的一种逻辑公式,描述了一种字符串匹配的模式(pattern),用正则表达式来进行判断用例返回值是否符合预期。表示以正则表达式来进行校验判断匹配到的字符串是否符合预期值。示例如下:正则表达式 描述 ^Regular.* 匹配以Regular开头的字符串 .*lar$ 匹配以lar结尾的字符串 [0-9]\d* 匹配以0-9的数字组成的字符 ^(182)\d{8}$ 匹配以182开头的电话号码 [a-zA-Z_]{1,}[0-9]{0,}@(([原创 2020-08-13 17:30:45 · 511 阅读 · 0 评论 -
正则表达式-基础语法
----------------------更新中------------------------正则表达式(regular expression)描述了一种字符串匹配的模式(pattern),可以用来检查一个串是否含有某种子串、将匹配的子串替换或者从某个串中取出符合某个条件的子串等。...原创 2020-08-13 17:29:06 · 410 阅读 · 0 评论 -
前缀(波兰)、中缀、后缀表达式(逆波兰)
中缀转后缀1.遇到操作数:直接输出(加入到后缀表达式中)2.栈为空时,遇到运算符。直接入栈3.遇到左括号:将其入栈4.遇到右括号:运行出栈操作,并将出栈的元素输出,直到弹出栈的是左括号。左括号不输出。5.遇到其它运算符:若当前运算符优先级低于栈顶运算符,则弹出全部优先级大于或者等于该运算符的栈顶元素并依次输出。然后将当前运算符入栈6.终于将栈中的元素依次出栈,输出。https:/...原创 2020-03-31 21:20:12 · 289 阅读 · 0 评论 -
详解 new/malloc || delete/free
https://blog.csdn.net/nie19940803/article/details/76358673原创 2020-03-31 22:18:38 · 182 阅读 · 0 评论 -
sizeof() 、strlen()、str.length的区分
https://blog.csdn.net/qq_34675587/article/details/76681442原创 2020-03-31 22:16:23 · 606 阅读 · 0 评论 -
指针问题合集
===============================更新中=========================https://zhidao.baidu.com/question/30503441.htmlint *a=&b原创 2020-03-25 22:03:50 · 122 阅读 · 0 评论 -
C++虚函数(virtual关键字)
1.虚函数(实现类的多态性) 当函数被virtual关键字修饰时,该函数被称为虚函数,虚函数是指一个类中你希望重载的成员函数,当你用一个基类指针或引用指向一个继承类对象的时候,你调用一个虚函数,实际调用的是继承类的版本。虚函数最关键的特点是“动态联编”,它可以在运行时判断指针指向的对象,并正确调用对象的函数。 而函数的重载可以认为是多态,只不过是静态的。注意,非虚函数静态...原创 2020-03-25 10:30:15 · 2598 阅读 · 0 评论 -
C++关于this指针、静态变量和静态成员函数
1.this指针this指针就是类的实例起始地址——实例的变量存储区的起始地址,和代码区是分开的。有了this指针我就可以访问我的实例的变量,并传递给代码区区执行。值得注意的是,this指针本身并不是实例的一部份,所以不会影响sizeof(实例)的大小。当你进入一个房子后,你可以看见桌子、椅子、地板等,但是房子你是看不到全貌了。对于一个类的实例来说,你可以看到它的成员函数、成员变...原创 2020-03-24 22:28:51 · 1943 阅读 · 0 评论 -
父类与子类指针相互转化的问题
1.当自己的类指针指向自己类的对象时,无论调用的是虚函数还是实函数,其调用的都是自己的:2.当指向父类对象的父类指针被强制转换成子类指针时候,子类指针调用函数时,只有非重写函数是自己的,虚函数是父类的;3.当指向子类对象的子类指针被强制转换成父类指针的时候,也就是父类指针指向子类对象,此时,父类指针调用的虚函数都是子类的,而非虚函数都是自己的;总结:当父类子类有同名非虚函数的时候,调用的是转换...转载 2020-03-23 21:49:54 · 481 阅读 · 0 评论 -
typeid详解
typeid 运算符通常被用来判断两个类型是否相等。typeid 运算符用来获取一个表达式的类型信息。类型信息对于编程语言非常重要,它描述了数据的各种属性:对于基本类型(int、float 等C++内置类型)的数据,类型信息所包含的内容比较简单,主要是指数据的类型。 对于类类型的数据(也就是对象),类型信息是指对象所属的类、所包含的成员、所在的继承关系等。(1)内置类型的比较...原创 2020-03-23 10:10:11 · 2335 阅读 · 0 评论 -
c++中的 istringstream 的用法
#include<sstream>istringstream类用于执行C++风格的串流的输入操作。ostringstream类用于执行C风格的串流的输出操作。strstream类同时可以支持C风格的串流的输入输出操作。istringstream对象可以绑定一行字符串,然后以空格为分隔符把该行分隔开来。istringstream的构造函数原形如下: istringstream::...原创 2020-03-22 09:55:08 · 785 阅读 · 0 评论 -
继承时的构造函数
单一继承时的构造函数#include<iostream>using namespace std;class B{ public: B(); B(int i); ~B(); void print() const; private: int b;};B::B(){ b=0; cout<<"B's default constructor ...原创 2020-03-19 16:17:45 · 274 阅读 · 0 评论 -
C++内联函数与外联函数
类的成员函数可以分为内联函数和外联函数。(1)内联函数是指那些定义在类体内的成员函数,即该函数的函数体放在类体内。(2)外联函数是声明在类体内,定义在类体外的成员函数。外联函数的函数体在类的实现部分。内联函数在调用时不是像一般的函数那样要转去执行被调用函数的函数体,执行完成后再转回调用函数中,执行其后语句,而是在调用函数处用内联函数体的代码来替换,这样将会节...原创 2020-03-09 09:51:10 · 2898 阅读 · 0 评论 -
C++继承与派生
类之间的关系:has-A,uses-A 和 is-Ahas-A 包含关系 描述一个类由多个“部件类”构成。实现has-A关系用类成员表示,即一个类中的数据成员是另一种已经定义的类。uses-A 一个类部分地使用另一个类。通过类之间成员函数的相互联系,定义友员或对象参数传递实现。is-A 机制称为“继承”。关系具有传递性,不具有对称性。class 派生类名 : 继承方式 基...原创 2020-03-08 22:41:29 · 172 阅读 · 0 评论 -
C++的冒号:和双冒号::的作用
冒号:1.表示机构内位域的定义(即该变量占几个bit空间)class A{ unsigned char:5;};2.构造函数后面的冒号起分割作用,是类给成员变量赋值的方法,初始化列表,更适用于成员变量的常量const型。class A{ A() : y(0xc0) {}};3.public:和private:后面的冒号,表示后面定义的所有成员都是公有或私有...原创 2020-03-08 22:24:18 · 457 阅读 · 0 评论 -
C++中 char、short、long、double、指针占几个字节(64位机)
指针几个字节跟语言无关,而是跟系统的寻址能力有关,指针长度和地址总线有关,因为指针记录的就是一个地址,那么32位的就是4字节,64位的就是8字节。#include<iostream>using namespace std;int main(){ double *p = NULL; cout<<sizeof(char)<<endl; //1...原创 2020-03-08 10:01:49 · 1905 阅读 · 1 评论 -
C++ 数组名a、数组名取地址&a、数组首地址&a[0]、数组指针*p
数组名a:数组名可以作为数组第一个元素的指针。由数组和指针的关系知道,a代表这个地址数值,它相当于一个指针,指向第一个元素(&a[0]),即指向数组的首地址。数组中的其他元素可以通过a的位移得到,此时的进阶是以数组中单个的元素类型为单位的,即a+i= &a[i]。数组名取地址&a:对于一个普通的变量b,&b是指用取地址符号取得变量b的存放地址;a在内存中...原创 2020-03-07 21:09:16 · 6194 阅读 · 0 评论 -
C++模板template的使用
模板是一种对类型进行参数化的工具; 通常有两种形式:函数模板和类模板; 函数模板针对仅参数类型不同的函数; 类模板针对仅数据成员和成员函数类型不同的类。 使用模板的目的就是能够让程序员编写与类型无关的代码。比如编写了一个交换两个整型int 类型的swap函数,这个函数就只能实现int 型,对double,字符这些类型无法实现,要实现这些类型的交换就要重新编写另一个swap函数。...原创 2020-03-07 17:48:19 · 682 阅读 · 0 评论 -
三角形面积
若以abc为边长能构成一个三角形,则计算该三角形的面积并返回;否则返回0。#include<iostream>#include<cmath>using namespace std;double Area(double a,double b,double c){ double s=(a+b+c)/2; if(s>a&&s>b&a...原创 2020-03-07 15:34:27 · 138 阅读 · 0 评论 -
return 、break和continue的区别和作用
1.return关键字并不是专门用于跳出循环的,return的功能是结束一个方法。 一旦在循环体内执行到一个return语句,return语句将会结束该方法,循环自然也随之结束。与continue和break不同的是,return直接结束整个方法,不管这个return处于多少层循环之内。public class ReturnTest{ public static void main(S...转载 2020-03-07 10:23:20 · 183 阅读 · 1 评论 -
C++ for循环三种写法
① 省略第一个参数,前提是要在循环前面声明循环变量 int i=4;for(;i;i--){} == for(i=4;i>=0;i--){} ② 省略第二个参数,意味着此循环进入死循环,除非for循环体内强制退出for(i=0;;i++){ if(i>11){ break; }}③ 省略第...原创 2020-03-07 10:17:45 · 2962 阅读 · 1 评论 -
C++形参与实参
如果把函数比喻成一台机器,那么参数就是原材料,返回值就是最终产品;从一定程度上讲,函数的作用就是根据不同的参数产生不同的返回值。函数的参数会出现在两个地方,分别是函数定义处和函数调用处,这两个地方的参数是有区别的。形参(形式参数)在函数定义中出现的参数可以看做是一个占位符,它没有数据,只能等到函数被调用时接收传递进来的数据,所以称为形式参数,简称形参。int add(int m,int n)...原创 2020-03-07 09:54:25 · 6364 阅读 · 0 评论 -
C++引用
引用是为已存在的变量取了一个别名,引用和引用的变量共用同一块内存空间格式:类型& 引用变量名(对象名) = 引用实体;int& ra = a;ra为a的引用对引用的操作就是对这一变量的直接操作,效果是完全一样的。声明一个引用时,必须要对其初始化,将其与某个变量相关联。定义一般变量时:声明:声明变量类型和名字 定义:根据类型分配内存地址空间 初始化...原创 2020-03-06 21:55:10 · 143 阅读 · 0 评论 -
函数的重载
函数重载,有两个要求: ①函数名一致 ②参数表不一致(包括参数数量和参数类型)//函数1:int add(int a,int b){ return a+b;}//函数2:double add(double a,double b){ return a+b;}//函数3:int add(int x){ return x+100;...原创 2020-03-06 20:29:37 · 214 阅读 · 0 评论 -
类的构造函数与析构函数
1.类的初始化所谓初始化,就是把一个刚创建的数据设置成我想要的值,而不是一个不能掌控的随机数。如果初始化用的是一般的赋值,当属性很多且而大部分属性都是默认的情况下,这种方法会麻烦。c++为类提供了初始化函数,这个函数在对象被创建时有系统自动调用,是创建对象的最后一步。也就是说,初始化函数是创建对象的一部分,初始化函数退出之后,该对象才完成了创建。初始化函数和类名要保持一致,且没有返回值,...原创 2020-03-06 20:17:45 · 351 阅读 · 0 评论 -
【C++】输入与输出—cin与cout
输入输出不是由C++本身定义的,而是在编译系统提供的I/O库中定义的,用“流”(stream)的方式实现的。有关流对象cin、cout和流运算符的定义等信息是存放在C++的输入输出流库中的,故如果在程序中使用cin、cout和流运算符,就必须使用预处理命令把头文件stream包含到本文件中:#include <iostream>1.cout用到C++中标准输入输出、string...原创 2020-03-04 21:57:23 · 481 阅读 · 0 评论