Bootstrap

C++学习笔记

C++基础——const成员函数

C++基础——内存分配和释放的函数

C++基础——int *p[]和int (*p)[]的区别

C++基础——setw()的用法

setw() 用于控制输出之间的间隔,具体如下

C++基础—— 命名

在这里插入图片描述

C++基础——继承方式

在这里插入图片描述

基类public成员, 在子类中仍然是public成员,在子类中可以使用, 在子类的对象中也可以调用
基类的protected成员,在子类中仍然是protected成员,在子类中可以使用,在子类的对象中不能直接调用
private成员,只能在基类中使用,在基类对象,子类,子类对象中都不能使用

C++基础——虚函数、虚继承区别

链接

C++基础——引用和指针的区别

1、指针是一个实体,需要分配内存空间。引用只是变量的别名,不需要分配内存空间。
2、引用在定义的时候必须进行初始化,并且不能够改变。指针在定义的时候不一定要初始化,并且指向的空间可变。(注:不能有引用的值不能为NULL)
3、有多级指针,但是没有多级引用,只能有一级引用。
4、指针和引用的自增运算结果不一样。(指针是指向下一个空间,引用时引用的变量值加1)
5、sizeof 引用得到的是所指向的变量(对象)的大小,而sizeof 指针得到的是指针本身的大小。
6、引用访问一个变量是直接访问,而指针访问一个变量是间接访问

C++基础——随机数

	seed=time(0);
  	srand(seed);
    number=rand()%10+1;

C++基础——内置函数

使用内置函数可以节省运行时间,但却增加了目标程序的长度。因此一般只将规模很小(一般为5个语句以下)而使用频繁的函数(如定时采集数据的函数)声明为内置函数。

C++基础——字节

在这里插入图片描述

C++基础——extern “C”

extern "C"的主要作用就是为了能够正确实现C++代码调用其他C语言代码。加上extern "C"后,会指示编译器这部分代码按C语言的进行编译,而不是C++的。由于C++支持函数重载,因此编译器编译函数的过程中会将函数的参数类型也加到编译后的代码中,而不仅仅是函数名;而C语言并不支持函数重载,因此编译C语言代码的函数时不会带上函数的参数类型,一般只包括函数名。

形参实参步进

在这里插入图片描述

C++基础——struct和class区别

struct 能包含成员函数 能继承 能实现多态 和class的区别在于默认访问控制类型不同 struct是public的,class是private 就算把程序中的class全换成struct,程序依然能正常运行。 还有另一个很少涉及的区别是:class 可以用于定义模板参数,但是struct不行。

C++基础——宏定义(直接加括号)

宏定义

C++基础——cmath

cmath是c++语言中的库函数,其中的c表示函数是来自c标准库的函数,math为数学常用库函数。三角函数,反三角函数,双曲三角函数,指数与对数,取整,绝对值,标准化浮点数,取证与取余,以及一些其他函数

1.指数与对数

double sqrt (double);开平方
double pow(double x,double y);计算x的y次幂

2.取整、绝对值

floor(f) ;取上整
ceil(f); 取下整
int abs(int i); 求整型的绝对值
double fabs (double);求实型的绝对值

C++基础——printf cout setw(int n)

示例:c=5/9*(f-32)
1、cout<<fixed<<setprecision(3)<<5/9.0*(f-32)<<“\n”;
: 用setprecision()/cout.precision()函数都需要加上头文件:#include < iomanip >
2、 printf(“%.3f”,5.0/9.0*(f-32));
3、setw(int n)函数是C++中在输出操作中使用的字段宽度设置(printf(“%4d”,n)

小练习

在这里插入图片描述

1:用循环加 t=-t 实现 ((-1)^(n-1))
2:观察规律

多行输入

1.while(scanf(“%d%d\n”,&a,&b)!=EOF)
2.while(cin>>a>>b)

取数字各位数/并对调/最大公约

1、/+%
2、数组存储各位
3、 while(j!=0){ sum=10*sum+j%10; j=j/10; }
4、int zdgy(int a,int b){ if(b==0) return a; else return mgys(b,a%b); }

字符输入/输出

1.getchar()/putchar()
2.getline(cin,s);
3.scanf(“%c”,&a);

标题

#include<iostream>
#include<cmath>
using namespace std;
//找最大公约数
int zdgy(int n,int m){
    int temp;
    if(n<m){
        temp=n;
        n=m;
        m=temp;
    }
    while(n%m!=0){
    	//若无return则死循环 zdgy(m,n%m);
        return zdgy(m,n%m);
    }
    return m;
}
int main(){
    int n,m,min;
    cin>>n>>m;
    cout<<zdgy(n,m); 
}

排序

#include
sort(begin, end, cmp)
greater < int > ()

质数问题

在这里插入图片描述
1、逐个取模检查是否位质数;
2、指定范围内,算出所有数包含质数;

;