1 vector 初始化
对于vecter<int> 而言,花括号和圆括号很容易区分
花括号用于列表初始化,圆括号用于构造函数初始化。
vector<int> v1(10);//v1含有十个元素,每个都为零
vector<int> v2{10};//v2含有一个元素10
vector<int> v3(10,0);//v3含有十个元素,都为0
vector<int> v4{10,0};//v4含有两个元素,10和0
对于vector<string>来说,当列表初始化值不对应的时候,还是执行构造函数初始化
vector<string> v5{"hi"};//v5含有一个元素“hi”
vector<string> v6("hi");//错误的方式
vector<string> v7{10};//v7含有十个元素,默认初始化
vector<string> v8{10,"hi"};//v8含有10个元素,都是“hi”
2 编译器会自动将数组名替换为一个指向数组首元素的指针
int ia[2][2][2] ={
{
{1,2},
{3,4}
},
{
{5,6},
{7,8}
}
};
for(int (*a)[2][2]=ia;a!=ia+2;a++) //ia是指向数组首元素的指针,ia是三维数组,即数组的数组的数组,它的首元素是一个二维数组,所以,ia的类型是 int(*)[2][2]
{
for(int (*b)[2]=*a;b!=*a+2;b++) //a是指向二维数组的指针,*a是一个二维数组名,所以*a是指向二维数组首元素,一个一位数组的指针,所以*a的类型是 int(*)[2]
{
for(int *c=*b;c!=*b+2;c++) //b是一维数组的指针,*b是一维数组名,*b的类型是 int*
{
std::cout << *c <<" ";
}
std::cout << std::endl;
}
}
3 判断一个数字是否为奇数的方法
bool isEven = false;
if(num&1) //按位与1,如果最后一位是1,和1与的结果即为1,则该数字为奇数
isEven = true;