重新开始 杂类:C++基础
目录
1.输入输出
#include<cstdio>//cin>>,cout
#include<iostream>//printf,scanf
(1) cin , cout输入输出流可直接用于数字,字符
(2)scanf("%数据类型",&变量名称 );
printf("%数据类型", 变量名称 );
整型
printf("%6d",a );
输出的数占6位
浮点型
printf("%.6f", a );
输出小数点后6位
2 . i++ 与 ++i
i++ 即后加加,原理是:先自增,然后返回自增之前的值
++i 即前加加,原理是:先自增,然后返回自增之后的值
3.结构体
(1)结构体定义
//定义一
struct node {
int num[100001] , length ;
node() {//结构体初始化
memset( num , 0 , sizeof(num) );
length = 0 ;
}
}
struct node a , b ;
//定义二
struct node {
int num[100001] , length ;
node() {//结构体初始化
memset( num , 0 , sizeof(num) );
length = 0 ;
}
} a , b ;
(2)对结构体的运算符重载
例子为高精度加法
在结构体内部重载
struct node {
int num[10001] , length;
node() {//结构体初始化
memset( num , 0 , sizeof(num) );
length = 0 ;
}
// 在结构体内部重载运算符
node operator + ( const node &y ) {//重载运算符
node z ;
int len = max( length , y.length ) ;
int Add = 0 ;
for( int i = 1 ; i <= len ; ++ i ) {
z.num[i] = num[i]+y.num[i]+Add ;
Add = z.num[i]/10 ;
z.num[i] %= 10 ;
}
len ++ ;
z.num[len] = Add ;
while( !z.num[len] && len> 1 ) {//0+0 = 0 ,需要保留一位0
len -- ;
}
z.length = len ;
return z ;
}
};
在结构体外部重载
struct node {
int num[10001] , length;
node() {//结构体初始化
memset( num , 0 , sizeof(num) );
length = 0 ;
}
node operator +( const node &y );在结构体外部重载运算符
};
//在结构体外部重载运算符
node node::operator +( const node &y ) {//node::operator 该重载运算符仅在node类中能使用
node z ;
int len = max( length , y.length ) ;
int Add = 0 ;
for( int i = 1 ; i <= len ; ++ i ) {
z.num[i] = num[i]+y.num[i]+Add ;
Add = z.num[i]/10 ;
z.num[i] %= 10 ;
}
len ++ ;
z.num[len] = Add ;
while( !z.num[len] && len> 1 ) {//0+0 = 0 ,需要保留一位0
len -- ;
}
z.length = len ;
return z ;
}
基础概念
(1)::
::
是一个作用域解析运算符,用于指定某个名字的声明或定义在哪个作用域内。在这个例子中,node::operator+
表示operator+
是一个在node
类内部定义的成员函数。因此,代码中的两个
node
分别表示不同的作用域。第一个node
表示函数返回的值的类型是node类型,而第二个node
则表示函数返回的是一个在node
类内部定义的成员函数。(2)public,private,protected
4.二进制
1.按位与 (&)
0 & 0 = 0、0 & 1 = 0、1 & 0 = 0、1 & 1 = 1
两者全部为true则结果为true,否则为false;
2.按位或(|)
0 | 0 = 0、0 | 1 = 1、1 | 0 = 1、1 | 1 = 1
两者有一个为true则结果为true,否则为false;
3.异或(^)
0 ^ 0 = 0、0 ^ 1 = 1、1 ^ 0 = 1、1 ^ 1 = 0
两者相同为false,不同为true;
可以使用交换律;
0和任何数^,结果为其本身;
任何数和自身^,结果为0。
4. 位移
5.部分函数应用
1.pow函数
函数原型
double pow(double a,double b);
注意 pow( x , 1/2 ),默认1/2 为int类型,1/2 = 0 ,应改为 (double)(1/2)