zoukankan      html  css  js  c++  java
  • Day 1

    文件结束符:windows:ctrl+z      unix:ctrl+d

    文件重定向:程序名 < 输入文件名 > 输出文件名       如:add <input.txt> output.txt

    宽字符:wchar_t    可以存放机器最大扩展字符集中的任意一个字符

    Unicode字符:char16_t,char32_t   所有自然语言中的字符标准

    unsigned:无符号      如果有unsigned修饰的变量且相减之后为赋值,则结果取模类型最大值,如果需要一个不大的非负整数可用unsigned char

    20 /* 十进制 */                 024  /* 八进制 */                 0x14 /* 十六进制 */

    初始化:创建变量时赋予其一个初始值

    赋值:将对象当前值擦除,用一个新值代替

    声明extern:        如 extern int i; //声明      int i;//定义            变量可用多次声明,但只能定义一次

    标识符的规则:1.标识符要能体现含义    2.变量名一般用小写字母   3.用户自定义类一般用大写开头  如:struct Tree{};   4.如果标识符由多个单词组成,应有明显区分  如studentName   or   student_name

    引用&:   引用必须被初始化,且必须引用对象   如 int  &a = b;//正确     i nt  &a;//错误    int &a = 10;//错误         注意:引用并非对象,它只是已经存在的对象的另一个名字

    指针*:   其实指针*就是一个解引符号,注意:建议初始化所有指针    int *p = &a; //正确    int *p;  p = &a; //正确          int *p; *p = &a;//错误

    1 int i=422 int *p = nullptr;      //p是一个指针
    3 int *&r = p;            //r是一个对指针p的引用
    4 r = &i;                   // r引用了一个指针,因此给r赋值&i,就是令p指向i
    5 *r = 0;                  // 解引用r得到i,也就是p指向的对象,将i的值改为0

    const限定符: 引用的类型必须与引用的对象的类型一致(有两种例外情况)

    1 const int ci = 1024;
    2 const int &r1 = ci;  //正确
    3 r1 = 42;         //错误:r1是对常量的引用
    4 int &r2 = ci;    //错误:试图让一个非常量引用指向一个常量

    第一种例外情况:

    1 double dval = 3.14;
    2 const int &ri = dval;  //正确
    3 
    4 相当于
    5 
    6 const int temp = dval;   //生成一个零时的整型常量
    7 const int &ri = temp;    //让ri绑定这个临时量
    8 如果 &ri不是常量  如:int &ri = temp; //错误,修改ri时不知道赋值给谁

     指针和const:  

    1 const double pi = 3.14;
    2 const double *cptr = &pi; //正确
    3 double *ptr = &pi; //错误,ptr是一个普通指针
    4 *cptr = 42//错误,不能给*cptr赋值
    5 
    6 double dval = 3.14;
    7 cptr = dval; //正确,但是不能通过*cptr修改dval的值

    常量指针: int *const p = &a;        *p将一直指向a,且*p必须初始化

                  同理:  const int *const p = &a;   都不可修改

    1 int i = 0;
    2 int *const p1 = &i; //不能改变p1的值,是顶层const
    3 const int ci = 42;  //不能改变ci的值,是顶层const
    4 const int *p2 = &ci; //允许改变p2的值,是底层const

    c++ 11       constexpr:  一般来说,如果你认定变量时一个常量表达式,那就把它声明称constexpr类型

    constexpr和指针:限定符constexpr仅对指针有效,与指针所指的对象无关

    typedef :    typedef double a,*b;  //a是double的同义词,b是double *的同义词

    c++11         decltype:选择并返回操作数的数据类型        如 decltype(f()) sum = x;//如果f() 返回值类型为int,那么等价于 int sum = x;

                     注意:int *p;   decltype(*p) 的结果类型是   int & 而非 int          decltype((variable)) (双层括号) 的结果永远是引用   如:int i; decltype((i))   == int &   

                               如果i是int型,则表达式i=x的类型是int & ,        如:int i ;   decltype(i = x)  == int & 

    头文件保护符 :      #ifndef 当且仅当变量未定义时为真,一旦结果为真,则执行后续操作直至遇见 #endif 指令为止 

    string:

    1 string s5 = "hiya"; //拷贝初始化
    2 string s6("hiya");  //直接初始化
    3 string s7(10,'c');  //直接初始化  ,cccccccccc

    getline(cin,str)  一次读一行

    string::size_type类型 :  .size()的返回值类型 ,是一个无符号的返回类型

                注意:   如果一个具有负值的int,那么表达式 str.size() < n 几乎肯定是true;   因为负值n会自动转化为一个比较大的无符号值

    vector:    注意:只能对确定已知存在的元素执行下标操作

    1 vector <int> v1(10);    //10个元素,全是0
    2 vector <int> v2{10};    //1个元素,10
    3 vector <int> v3(10,1);   //10个元素,全是1
    4 vector <int> v4{10,1};  //2个元素,10,1
    5 
    6 vector <string> v5{"hi"}; //1个元素,“hi”
    7 vector <string> v6("hi");  //错误
    8 vector <string> v7(10,"hi"); //10个元素,10个“hi”

    迭代器:iterator  和 const_iterator(只读)

    1 vector <int> ::iterator it;
    2 vector <int> v;
    3 for(it = v.begin();it != v.end();++it)
    4       *it = 1;
  • 相关阅读:
    OSX: 私人定制Dock默认程序图标
    PHP+MYSQL分页原理
    Python 数据结构与算法 —— 哈弗曼树
    C#制作文本转换为声音的demo,保存音频文件到本地
    时区与时间(二)
    时区与时间(二)
    摄影的艺术
    摄影的艺术
    名词、文化概念的解释
    名词、文化概念的解释
  • 原文地址:https://www.cnblogs.com/yZiii/p/8552076.html
Copyright © 2011-2022 走看看