第3章 标准库类型string、vector、数组

1.string的几种初始化方式

string s1;
string s2(s1);
string s3("A");
string s4(n,'c')        //n个c组成的串
  • 直接初始化与拷贝初始化

    拷贝初始化使用=,而直接初始化不使用

2. cbegin 和cend

  • 返回只读的迭代器const_iterator

3.数组

  • 一些注意事项

    • 不允许使用auto
    • 元素必须为对象,不存在引用的数组
    • 不允许直接赋值和拷贝
  • 复杂数组的声明解释

    int *ptr[10];     //含有十个int类型指针的数组
    int (*parray)[10];    //指向一个含有10个int元素的数组的指针,【数组指针】
    int (&arrRef)[10];    //引用一个含有10个int元素的数组的指针
    //解释顺序:由内向外
    
  • 数组与指针

    • 使用数组作为auto变量的初始值,推断类型为【指针】而非数组

      int a[]={0,1,2,3,4};
      auto b(a);          //整型指针
      //等价于
      auto b(&a[0]);
      
    • 使用decltype不会发生上述情况

      decltype(a) c={0,1,2,3};        //c是数组
      
  • c 风格字符串注意事项

    //C风格字符串是多个字符最后接上'\0'
    char ca[]={'c','+','+'};  //ca不是C风格字符串,不能使用strcopy(),strlen()等函数
    //可以通过c_str()函数将string转为C风格字符串
    
  • 使用数组初始化vector

    int a[]={0,1,2,3,4};
    vector(begin(a),end(a));     //参数为拷贝范围首尾地址
    

你可能感兴趣的:(第3章 标准库类型string、vector、数组)