C++学习笔记系列(一)

举报
小小谢先生 发表于 2022/04/16 01:54:40 2022/04/16
【摘要】 第一章 1、在C++中,可不显示地指定变量类型,使用关键字auto 例如:auto flag=true。这里将指定变量flag的类型交给了编译器,编译器会自动确定变量应为什么类型。PS:auto时必须将变量初始化,否则会出现编译错误。2、使用enum来定义变量只有一组特定的取值 例如: enum RainbowColors{ ...

第一章

1、在C++中,可不显示地指定变量类型,使用关键字auto
例如:auto flag=true。这里将指定变量flag的类型交给了编译器,编译器会自动确定变量应为什么类型。
PS:auto时必须将变量初始化,否则会出现编译错误。
2、使用enum来定义变量只有一组特定的取值
例如:


  
  1. enum RainbowColors
  2. {
  3. violet=0,
  4. Indigo,
  5. Blue,
  6. Green,
  7. Yellow,
  8. Orange,
  9. Red
  10. };

RainbowColors MyWorldsColor = blue ; #声明了常量MyWorldColor,这个常量只能取RainbowColors的值,声明枚举常量时,编译器把枚举值(voilet等)转化为整数,每个枚举值都比前一个大1.可以自己指定初始值,没有指定的话初始值为0.
3、为减少内存的占用,可以用std::vector来定义动态数组。需要包含头文件#include<vector>
例如:简要代码如下


  
  1. #include<iostream>
  2. #include<vector>
  3. using namespace std;
  4. int main()
  5. {
  6. vector<int> DynArrNums(3) #数组初始长度为3
  7. int AnotherNum=0;
  8. cin>>AnotherNum;
  9. DynArrNums.push_back(AnotherNum) #使用这个函数将这个数字压入到矢量中
  10. }

4、C++字符串的使用
需要使用头文件#include<string>才能使用string 变量名定义字符串变量。
例如:


  
  1. #include<iostream>
  2. #include<string>
  3. using namespace std;
  4. int main()
  5. {
  6. string Greetings("Hello,std:string!");
  7. cout << Greetings << endl;
  8. cout << "enter a line o text:" << endl;
  9. string FirstLine;
  10. getline(cin, FirstLine);
  11. cout << "enter another" << endl;
  12. string SecLine;
  13. getline(cin, SecLine);
  14. cout << "concatenation:" << endl;
  15. string Contact = FirstLine + " " + SecLine;
  16. cout << Contact << endl;
  17. return 0;
  18. }

5、语句、运算符
要将一条放到两行中,可在第一行末尾添加反斜杠(\),也可将字符串字面量分成两个,如下例:


  
  1. cout << "hello \
  2. world" << endl;
  3. 或是:
  4. cout << "Hello"
  5. "world" <<endl;

使用后缀运算时,先将值赋给左值,再将右值递增或递减,左值都为执行前的旧值;使用前缀运算就相反,先将值递增或递减,再将结果赋给左值。

++变量名 一般优于 变量名++


  
  1. #include<bitset>
  2. cin>>InputNum;
  3. bitset<8> InputBits (InputNum) #转换为二进制
  4. bitset<8> BitwiseNOT = (~InputNum) #按位运算符Not
  5. bitset<8> BitwiseAND = () #AND运算
  6. BitwiseOR = ()
  7. BitwiseXOR=() #异或运算

6、控制流程序
字符初始化一般用:
char userselection= '\0;
死循环一般用来检测操作系统USB接口是否连接了设备,只要系统一直在运行,这种活动就不会停止。
一个函数可以包含多条return语句
7、函数重载
名称和返回类型相同,参数不同的函数称为重载函数。在应用程序中,如果使用不同的参数调用具有特定名称和返回类型的函数,重载函数将很有用。
按引用传递函数
即不是以返回值的方式而是以引用参数的方式提供给函数,如下所示:


  
  1. #include<iostream>
  2. #include<string>
  3. using namespace std;
  4. const double Pi = 3.1416;
  5. void Area(double radius, double &result)
  6. {
  7. result = Pi * radius *radius;
  8. }
  9. int main()
  10. {
  11. cout << "enter radius:";
  12. double radius = 0;
  13. cin >> radius;
  14. double AreaFet = 0;
  15. Area(radius, AreaFet);
  16. cout << "the area is:" << AreaFet << endl;
  17. return 0;
  18. }

8、内联函数
当定义一个函数时,执行函数的开销有可能非常高,所以使用关键字inline可以节省内存空间,将函数的内容直接放到它调用的地方,以提高代码的执行速度。但是应尽量少用关键字inline。


  
  1. inline long DoubleNum(int InputNum)
  2. {
  3. description;
  4. }

9、lambda函数
lambda函数语法如下:
[optional parameters] (parameter list){statements;}
代码如下:


  
  1. #include<iostream>
  2. #include<vector>
  3. #include<algorithm>
  4. using namespace std;
  5. void DisplayNums(vector<int>&DynArray)
  6. {
  7. for_each(DynArray.begin(), DynArray.end(), \
  8. [](int Element) {cout << Element << " "; });
  9. cout << endl;
  10. }
  11. int main()
  12. {
  13. vector<int>MyNumbers;
  14. MyNumbers.push_back(501);
  15. MyNumbers.push_back(-1);
  16. MyNumbers.push_back(25);
  17. MyNumbers.push_back(-35);
  18. DisplayNums(MyNumbers);
  19. cout << "sorting them in descend orders" << endl;
  20. sort(MyNumbers.begin(), MyNumbers.end(), \
  21. [](int Num1, int Num2) {return (Num2 < Num1); });
  22. DisplayNums(MyNumbers);
  23. return 0;
  24. }

当定义函数提供形式参数时,要将所有有默认参数值的参数放在列表末尾,要么给所有参数都指定默认值。

文章来源: blog.csdn.net,作者:小小谢先生,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/xiewenrui1996/article/details/90448266

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。