C++学习笔记(二)

本文是C++学习笔记的第二部分,主要探讨了vector的初始化,包括vector<int>和vector<string>的区别,并介绍了如何判断一个数字是否为奇数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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;



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值