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<int>(begin(a),end(a)); //参数为拷贝范围首尾地址