2022找工作是学历、能力和运气的超强结合体,遇到寒冬,大厂不招人,此时学会c++的话,
我所知道的周边的会c++的同学,可手握10多个offer,随心所欲,而找啥算法岗的,基本gg
提示:系列c++学习的基础和高阶知识,用于公司生产实践中,实实在在的公司部署产品要用的,因为c++速度快,
而java和Python速度慢,自然往硬件里面部署算法啥的,都得用c++或者c,因此本科学的c很重要,后来的Python或者java就没有那么重要了,
取模a%b求余数
++递增
–递减
整除,整数部分,不保留小数
a/b保留整数部分
除数b不能为0
常识
俩小数能除吗
可以double就行
#include
using namespace std;
//算术运算
void calc1() {
int a = 10;
int b = 20;
cout << "a+b=" << a + b << endl;
cout << "a-b=" << a - b << endl;
cout << "a*b=" << a * b << endl;
cout << "a/b=" << a / b << endl;//整除,整数部分,不保留小数
//Python2也是这样,Python3就是有小数了
//java也是整除的
//俩小数
double d1 = 0.5;
double d2 = 0.25;
cout << "d1/d2=" << d1 / d2 << endl;//2不?
d2 = 0.2;
cout << "d1/d2=" << d1 / d2 << endl;//2不?
//你想看余数就%,这通用的
cout << "5%3=" << 5 % 3 << endl;//取余
}
int main() {
calc1();//算术运算
system("pause");
return 0;
}
void yushu() {
//
int a = 10;
int b = 3;
cout << a % b << endl;
int a2 = 10;
int b2 = 20;
cout << a2 % b2 << endl;
}
int main() {
//calc1();//算术运算
yushu();//算术运算
system("pause");
return 0;
}
老样子,除数不可为0
否则程序就会炸
double是不可以取模的哦
前置:先操作,让变量加1,再进行赋值操作
后置,先玩表达式赋值操作,后再进行+1的操作【经常在数据结构与算法中用的,典型的用处就是归并排序】
void dizengdijian() {
//前置,和后置--区别是啥呢??
int a = 10;
int a2 = ++a;//让a先加1,这叫前置
cout << a2 << endl;
cout << a << endl;
int b = 10;
int c = b++;//先玩表达式,再执行加1操作,这叫后置
cout << c << endl;
cout << b << endl;
}
int main() {
//calc1();//算术运算
//yushu();//算术运算
dizengdijian();//算术运算
system("pause");
return 0;
}
a += x
等价于
a = a + x
其余的加减乘除,取模啥的都一样
void fuzhi() {
int a = 10;
a = 100;//常规赋值
cout << a << endl;
a = 10;
a += 2;//a=a+2,简写了而已
cout << a << endl;
a = 10;
a -= 2;//a=a-2,简写了而已
cout << a << endl;
a = 10;
a *= 2;//a=a*2,简写了而已
cout << a << endl;
a = 10;
a /= 2;//a=a/2,简写了而已
cout << a << endl;
a = 10;
a %= 2;//a=a%2,简写了而已
cout << a << endl;
}
int main() {
//calc1();//算术运算
//yushu();//算术运算
//dizengdijian();//算术运算
fuzhi();//算术运算
system("pause");
return 0;
}
=是赋值操作
==判断相等的操作
注意这里运算符的优先级,后续我们还会讲
现在你需要知道
比较运算的优先级是低于算术运算符的
()的与优先级最高的
void compare1() {
//true 1;false 0
int a = 10;
int b = 20;
cout << (a == b) << endl;//优先级,比较运算是低于算术运算符的
cout << (a != b) << endl;//优先级,比较运算是低于算术运算符的
cout << (a > b) << endl;//优先级,比较运算是低于算术运算符的
cout << (a < b) << endl;//优先级,比较运算是低于算术运算符的
cout << (a <= b) << endl;//优先级,比较运算是低于算术运算符的
cout << (a >= b) << endl;//优先级,比较运算是低于算术运算符的
}
int main() {
//calc1();//算术运算
//yushu();//算术运算
//dizengdijian();//算术运算
//fuzhi();//算术运算
compare1();//算术运算
system("pause");
return 0;
}
你得清楚逻辑运算的计算速度远高于算术运算符
有时候经常用这种操作【加速运算】
逻辑与
void luoji() {
int a = 10;//非0,就是1逻辑,真
cout << !a << endl;//这个优先级挺高啊,!比右移左移操作高
cout << !!a << endl;//取反操作
int b = 0;
cout << (a && b) << endl;
cout << (a || b) << endl;//这里优先级又不如取非了
}
int main() {
//calc1();//算术运算
//yushu();//算术运算
//dizengdijian();//算术运算
//fuzhi();//算术运算
//compare1();//算术运算
luoji();//算术运算
system("pause");
return 0;
}
逻辑或
void luoji() {
int a = 10;//非0,就是1逻辑,真
cout << !a << endl;//这个优先级挺高啊,!比右移左移操作高
cout << !!a << endl;//取反操作
cout << endl;
cout << (1 && 1) << endl;
cout << (1 && 0) << endl;
cout << (0 && 1) << endl;
cout << (0 && 0) << endl;//全1才1
cout << endl;
cout << (1 || 1) << endl;
cout << (1 || 0) << endl;
cout << (0 || 1) << endl;
cout << (0 || 0) << endl;//有1就1
//这里优先级又不如取非了
}
提示:重要经验:
1)各种操作,慢慢搞
2)学好c++,即使经济寒冬,手握10个大厂offer绝对不是问题!
3)笔试求AC,可以不考虑空间复杂度,但是面试既要考虑时间复杂度最优,也要考虑空间复杂度最优。