zoukankan      html  css  js  c++  java
  • C++ 学习基础一

    1.预处理器指示符
    如果文件名用尖括号“<”和”>”括起来的,则表示该文件是工程或标准头文件,查找过程会检查预定义的目录。
    如果文件名用双引号括起来,则表示该文件是用户自定义的头文件,查找该文件时将从当前文件目录开始。

    2.注释块不能嵌套,即如下情况是不允许的
    /*
    * do not allow /**/
    */

    3.文件结束符,mac上使用Ctrl + D;windows上使用Ctrl + Z;

    —————-2016-07-12———————
    4.string对象的输入操作符,
    (1).读取并忽略开头的空白字符(如空格,换行符,制表符)
    (2).读取字符直至再次遇到空白字符,读取终止.

    5.用getline读取整行文本,getline返回的字符串不包含换行符

    6.vector——高效的动态的添加元素

    (1) 定义和初始化

    vector<T> v1;//v1默认为空
    vector<T> v2(v1);//v2是v1的副本
    vector<T> v3(n,i);//v3包含n个值为i的元素
    vector<T> v4(n);//v4含有值初始化的元素的n个副本

    (2)常用操作

    v.empty();//判断v是否为空
    v.size();//返回v中元素个数,返回值类型为size_type
    v.push_back(t);//在v的末尾添加一个值为t的元素
    v[n];//返回v中位置为n的元素,下标操作不允许添加元素,只能获取指定元素

    7.迭代器用于访问容器内的元素,每个容器都定义了一个名为iterator的类型。
    迭代器的简单使用:

    std::vector<int>::iterator iter;
    for(iter = ivec.begin();iter!=ivec.end();iter++)
    {
      cout<<*iter<<endl;
    }

    还可以通过迭代器改变vector中元素的值,具体如下:

    std::vector<int>::iterator iter;
    for(iter = ivec.begin();iter!=ivec.end();iter++)
    {
        *iter = 0;
        cout<<*iter<<endl;
    }

    除了iterator类型外,还有一种const_iterator类型,该类型的迭代器只能访问vector内的元素,不能更改其元素的值。

    std::vector<int>::const_iterator citer;
    for(citer = ivec.begin();citer!= ivec.end();citer++)
    {
        cout<<"dasfjsdfj "<<*citer<<endl;
    }

    8.数组
    (1)非const常量以及要到运行阶段才知道其值的const常量都不能用于定义
    数组的维数。如:

    const int value = 3;
    int ss_size = 30;
    const int bb_size = getsize();
    double a[ss_size];//error
    int b[value];//ok
    int c[bb_size];//error

    (2)一个数组不允许使用另外一个数组初始化,也不允许将一个数组赋值给另一个数组,
    如下:

    int ia[] = {0,1,2};
    int ia2[](ia);//error
    
    int ia3[3];//ok ,but elements are uninitialized!
    ia3 = ia;//error
    

    (3)动态数组是只通过new 和delete分配存储空间,例如:

    int *pia = new int[10];//ok,but uninitialed 
    int *pia2 = new int[10]();//ok,initialed
    

     (4)数组变量不允许创建空数组,而动态数组可以。如下:

    char array[0];//error,cannot define zero length array
    char *cp = new char[0];//ok,但是不能对该指针进行解引用
    

     (5)动态分配的数组最后必须显示地释放,否则最后将会逐渐耗尽。C++中使用delete[]释放指针所指向的数组空间。

    delete []pia;
    

     (6)动态数组的使用:

    通常是因为在编译时无法确定数组维数,所以使用动态创建该数组。

     后续更新中......

  • 相关阅读:
    ubuntu下如何批量修改文件后缀名
    vanilla
    Ubuntu apt-get 彻底卸载软件包
    Kendall Rank(肯德尔等级)相关系数
    图像质量评估(IQA)
    conda常用命令
    在ubuntu中搜索文件或文件夹的方法
    libstdc++.so.6: version `GLIBCXX_3.4.21' not found
    迅雷磁力链接转BT种子工具
    springboot 集成mybatis plus3
  • 原文地址:https://www.cnblogs.com/calence/p/5671599.html
Copyright © 2011-2022 走看看