C++学习笔记(二)

来源:互联网 发布:阿里云速度 编辑:程序博客网 时间:2024/05/18 22:44

1 vector 初始化

 对于vecter<int> 而言,花括号和圆括号很容易区分

花括号用于列表初始化,圆括号用于构造函数初始化。

vector<int> v1(10);//v1含有十个元素,每个都为零vector<int> v2{10};//v2含有一个元素10vector<int> v3(10,0);//v3含有十个元素,都为0vector<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;



原创粉丝点击