C++学习笔记(一)数据类型、数据处理、复合类型、循环、分支

     过段时间打算上手OpenCV,自己不是特别喜欢Python这个语言,干嵌入式时间久了还是对C有种执念,同时C++在嵌入式应用以及图像处理方面也是有很大占有量的,所以从国庆假期开始上手C++,当然学好C++绝非短时间能办到的,这需要大量的练习和使用,给自己加个油吧,不要变成C++从入门到放弃,我选用的教材是《C++ Primer Plus》,目前是边看内容边写一些有意思的例题和课后题。

      一开始的内容基本就是C的内容,自己的C还算靠谱,所以一开始感觉还不到劝退的地步,但是已经感受到了OOP的强大,对象的各种方法,可以实现许多在C中库实现不了的功能,函数重载使得变参数函数得以实现,一个函数根据接受参数的不同可以实现不同的功能,对我这个只接触过面对过程的C的人来说还是十分震撼的,同时强大的功能和极高的自由度带来的,必然是使用难度的剧增,所以都说C++学习曲线陡也不是没道理,慢慢来吧。    

    1、using namespace std; 添加这句语句以后可以使用cout cin endl等函数
        using编译指令 名称空间编译指令
        名称空间支持:编写大型程序及将多个厂商现有的代码组合起来的程序时更容易
        添加以上语句的结果等同于 std::cout<<"";
        全局using编译指令是一种偷懒的做法,更好的做法是只使所需的名称使用
    2、插入运算符<< 指明信息的流向
    3、类和对象的区别:类型之于变量
    4、C++ 俩种传递信息的方法:类方法、重新定义运算符
    5、大括号初始化 int a{};   a被初始化为0
    6、cout << hex 或 oct  十六进制或八进制输出
    7、通用编码名 \u
    8、cout.put输出字符
    9、cout.setf(ios_base::fixed,ios_base::floatfield);迫使输出定点表示法
    10、格式强转支持C语言格式或者函数格式
        static_cast<typename>(value)  更安全的强转
    11、列表初始化禁止缩窄转换
    12、字符串输入:cin.getline(变量名,len)    用换行符确定行尾但不保存   
                cin.get()  函数重载 一种用法与getline类似  另一种还能只读一个字符
                cin.get(变量名,len).get();      完成读取一行输入
    13、cin会忽略空格和换行符 空格和换行符是不会回显的
    14、注意丢弃换行符 (cin >>year).get();
    15、string 类 简单变量而不是数组,是一个表示字符串的实体
        可以相互赋值,可以加运算 类似于strcpy和strcat
    16、getline(cin,string类型变量名) 输入一个字符串
    17、R标识 原始字符串 可以使用 “\n"来表示\n
        R"+*(原始字符串0)+*"    这样就可以使用 () “”等
    18、C++使用结构体可以缺省struct
    19、枚举的取值范围 最大范围是小于最大值的2的最小幂-1,最小范围是0或者大于2的最小幂+1
    20、面向对象:运行时决策   面向过程:编译时决策
    21、new 类似于alloc 从堆(heap)或自由存储区(free store)的内存区域分配内存,申请失败返回0(NULL)
        delete 用来释放new的内存 配对存在 不要尝试释放已经释放了的内存
        如果使用new [] 来为数组分配空间,应使用delete [] 来释放内存
    22、若果给cout一个指针,那么他将打印一个地址,但是如果是char * 类型,会打印字符串 
        加(int *)强转可以打印出地址
    23、模板类vector  vector<typeName> vd(n);    n可以是变量
            array  array<typeName,n_elem> arr;   n必须为常量
    24、cout.setf(ios_base::boolalpha);    该标记命令cout显示true和false
    25、遍历字符串 while(name[i])结尾字符编码为0或false
    26、基于范围(range-based)的for循环  
        for(elemType x:数组名)    可以用来遍历数组但是不能对数组中的值进行修改
        for(elemType &x;数组名 ) 表明x是一个引用变量 可以修改数组的内容

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值