• C++课程总复习


    一、c++的第一条程序

    1.cout 

    cout ==>输出类对象,用来输出的,可以自动识别类型,所以不需要加格式符号

    << 插入符(输出符号)

    endl 换行===>\n

    1. #include
    2. //#预处理
    3. //include 包含 相应的头文件
    4. //iostream 输入输出流 i--input o--out
    5. using namespace std;
    6. //using :使用命名空间的关键字
    7. //namespace :命名空间的关键字
    8. //std:标准的命名空间
    9. //程序入口
    10. int main()
    11. { //程序的开始
    12. cout << "Hello World!" << endl;
    13. cout << "今天是我学习C++的第一天,好开心呀" << "好油" << endl;
    14. return 0;
    15. } //程序的结束

    2.cin

    cin 输入类的对象, 用来输入的,给变量初始化,它可以自动识别数据类型,所以不需要加格式符,不需要加&

    >> 提取符(输入符)

    1. #include
    2. using namespace std;
    3. int main()
    4. {
    5. cout << "请输入你的年纪:" << endl;
    6. int age;
    7. cin >> age;
    8. cout << "age = " << age;
    9. return 0;
    10. }

    二、c++的数据类型

    1. 数据类型:基本数据类型、构造数据类型

    基本数据类型:char 、short、int 、long、float、double、bool、string

    构造数据类型:数组、指针、结构体、共用体、枚举、

    1. #include
    2. #include
    3. using namespace std;
    4. int main()
    5. {
    6. //字符型 每个字符都有对应的ASCII码值
    7. char a = 'A';
    8. cout << "a = " << a << endl; //结果 a = A
    9. cout << "a = " << (int)a << endl;
    10. //整型 进制的问题 有无前缀
    11. //二进制 0b
    12. //八进制 0
    13. //十进制 无
    14. //十六进制 0x
    15. int b = 100, b2 = 0b100, b3 = 0100, b4 = 0x100;
    16. cout << "b = " << b << endl; //结果100
    17. cout << "b = " << dec << b << endl; //dec是以10进制方式 100
    18. cout << "b = " << oct << b << endl; //oct是以8进制
    19. cout << "b = " << hex << b << endl; //hex是以16进制
    20. cout << "b = " << b << endl; //如果改变了输出进制规则,则后面都以这种方式输出
    21. cout << "b = " << dec << b << endl;
    22. //浮点型
    23. double d1 = 12.3456789, d2 = 1.23456789;
    24. cout << "d1 = " << d1 << endl; //保留有效数字6位,存在四舍五入
    25. //如果自己想保留有效数字几位,需要用到一个方法 其头文件
    26. cout << setprecision(4) << d1 << endl;
    27. //保留小数点后几位
    28. cout << setprecision(4) << fixed << d1 << endl;
    29. //bool类型 true == 1 false == 0
    30. bool t = true, t2 = false;
    31. cout << t << endl;
    32. cout << boolalpha << t << endl;
    33. cout << t2 << endl;
    34. //bool可以参与运算
    35. cout << t+t2 << endl;
    36. return 0;
    37. }

    2 .C++中字符串string

    1. #include
    2. using namespace std;
    3. int main()
    4. {
    5. string str1; // int a
    6. string str2 = "abcdef"; //初始化
    7. cout << "str2 = " << str2 << endl;
    8. string str3 = str2; //把str2初始化str3
    9. cout << "str3 = " << str3 << endl;
    10. string str4(str3); // ==> string str4 = str3; 调用有参构造函数
    11. cout << "str4 = " << str4 << endl;
    12. string str5(str2,3); //把str2下标为3地方开始给str5初始化
    13. cout << "str5 = " << str5 << endl;
    14. str1 = str5; //赋值
    15. string str6(6, 'm');
    16. cout << "str6 = " << str6 << endl;
    17. return 0;
    18. }

    3. C++中字符串常用的函数

    size() 大小---元素的个数

    empty() 判断是否为空

    capacity() 容量大小

    1. if(!str6.empty())
    2. {
    3. cout << str6.size() << endl;
    4. cout << str6.capacity() << endl;
    5. }

    4 .C++中字符串和C语言中字符串风格互换

    1> c语言风格的字符串可以直接转换成c++字符串

    2> c++字符串不可以直接转换成c风格的字符串

    1. string str;
    2. char a[20] = "hello kitty";
    3. str = a;
    4. cout << str << endl;
    5. string strr = "hello world";
    6. //a = strr;
    7. //strcpy(a, strr);
    8. strcpy(a, strr.c_str()); //把C++中的字符串转换成c
    9. cout << a << endl; //hello world

    5. 字符串元素的访问

    1> 下标 ---不判断是否越界

    2> at() ---判断是否越界

    1. #include
    2. using namespace std;
    3. int main()
    4. {
    5. string str = "hello";
    6. cout << str[4] << endl;
    7. cout << str[8] << endl;
    8. cout << str.at(4) << endl;
    9. cout << str.at(8) << endl;
    10. return 0;
    11. }

    6. 字符串的比较

    由于c++有这种数据类型的变量,所以可以像其他基本数据类型一样用关系运算符比较。

    1. string str1 = "ab";
    2. string str2 = "ABCDEFGTTTTT";
    3. if(str1 != str2)
    4. {
    5. if(str1 > str2)
    6. {
    7. cout << "str1 > str2" << endl;
    8. }
    9. else
    10. {
    11. cout << "str1 < str2" << endl;
    12. }
    13. }
    14. else
    15. {
    16. cout << "sr1 == str2" << endl;
    17. }

    三、数组 array

    1. #include
    2. #include //包含数组的头文件 容器
    3. using namespace std;
    4. int main()
    5. {
    6. //一维数组
    7. // int a[5];
    8. // for(int i = 0; i<5; i++)
    9. // {
    10. // cin >> a[i];
    11. // }
    12. // for(int i=0; i<5; i++)
    13. // {
    14. // cout << a[i];
    15. // }
    16. // array a; // == int a[5] 容器
    17. // array::iterator iter; //迭代器 ==指针
    18. // //a.begin()第一个元素的地址
    19. // //a.end()最后一个元素的下一个地址
    20. // for(iter = a.begin(); iter != a.end(); iter++)
    21. // {
    22. // cin >> *iter;
    23. // }
    24. // for(iter = a.begin(); iter != a.end(); iter++)
    25. // {
    26. // cout << *iter << " ";
    27. // }
    28. // cout << endl;
    29. //二维数组 由多个数据类型相同的一维数组组成的数组
    30. // int a[3][2];
    31. // for(int i=0;i<3;i++)
    32. // {
    33. // for(int j=0;j<2;j++)
    34. // {
    35. // cin >> a[i][j];
    36. // }
    37. // }
    38. // for(int i=0;i<3;i++)
    39. // {
    40. // for(int j=0;j<2;j++)
    41. // {
    42. // cout << a[i][j] << " ";
    43. // }
    44. // cout << endl;
    45. // }
    46. array< array<int, 2> , 3> a;
    47. array< array<int, 2> , 3>::iterator iter1;
    48. array<int, 2>::iterator iter2;
    49. for(iter1 = a.begin(); iter1 != a.end(); iter1++)
    50. {
    51. for(iter2 = (*iter1).begin(); iter2 != (*iter1).end(); iter2++)
    52. {
    53. cin >> *iter2;
    54. }
    55. }
    56. for(iter1 = a.begin(); iter1 != a.end(); iter1++)
    57. {
    58. for(iter2 = (*iter1).begin(); iter2 != (*iter1).end(); iter2++)
    59. {
    60. cout << *iter2 << " ";
    61. }
    62. cout << endl;
    63. }
    64. return 0;
    65. }

    四、命名空间

    1、 命名空间的作用

    1> 多人协同合作时,可能会出现命名污染(命名冲突)

    2> 命名空间就相当于给一个取个姓 (张 三)

    2 、std命名空间的使用

    1. #include
    2. //方法3,直接将整个命名空间拿过来,后面的程序就可以不需要加命名空间名以及限定符
    3. //using namespace std;
    4. using std::cout;
    5. int main()
    6. {
    7. //方法1:写上命名空间名字以及作用域限定符
    8. //std::cout << "Hello World!" << std::endl;
    9. //方法2:使用命名空间里的某个名字,则后面程序中就不需要加命名空间名以及限定符,但是
    10. //没有表明的名字,则还要循序方法1
    11. cout << "Hello World!" << std::endl;
    12. cout << "...." << std::endl;
    13. return 0;
    14. }

    3、 自定义命名空间的使用

    格式: namespace 命名空间名 {

                                                                     数据类型 名字1;

                                                                     数据类型 名字2;

                                                                     数据类型 名字3;

                                                      。。。。 数据类型 名字n;

                                                        }

                          

    1. #include
    2. using namespace std;
    3. namespace Zhangsan
    4. {
    5. int cuihua;
    6. int age;
    7. }
    8. namespace Lisi //可以嵌套
    9. {
    10. int cuihua;
    11. int age;
    12. namespace xiaosan
    13. {
    14. int age; //作用域不同 可以一级一级找
    15. }
    16. }
    17. namespace Zhangsan //可以在同一个作用域下定义相同的命名空间
    18. {
    19. int b;
    20. //int age //但是要注意,合并,就不能有相同类型的变量名
    21. }
    22. using Zhangsan::age; //方法2
    23. int main()
    24. {
    25. Zhangsan::cuihua = 19;
    26. age = 56;
    27. Lisi::xiaosan::age = 23;
    28. return 0;
    29. }

                                   

    4、 命名空间的总结

    1> 作用:防止命名冲突,命名污染问题

    2> std的命名空间的使用,有三种:独立使用、声明某一个名字、声明整个命名空间

    3> 自定义命名空间:namespace 空间名{ }

    4> 命名空间能够嵌套定义,同一作用域下可以定义多个同名的命名空间

  • 相关阅读:
    Spark与hdfs delegation token过期的排查思路总结
    树莓派Raspberrypi安装Kali Linux保姆教程(通过树莓派安装ARM Kali教程)
    使用Intellij IDEA远程debug服务器Java代码
    Linux初识
    Toaster - Android 吐司框架,专治 Toast 各种疑难杂症
    C++ 智能指针
    java+jsp基于ssm的校园OTO超市系统-计算机毕业设计
    分布式理论与设计 三、分布式一致性协议
    PG学习笔记(PostgreSQL)
    压裂反排液除氨氮树脂技术
  • 原文地址:https://blog.csdn.net/m0_69894626/article/details/133778562