C++数组

1. 定义

        数组,一种能够存储多个相同类型的值的数据格式。

        声明: typeName arrayName[arraySize]

        需要注意的是,这种方式声明的时候,arraySize不能是变量。

        数组声明会创建大量的变量,可以用索引来访问每个元素。数组索引从0开始,访问的时候要注意下标越界的问题。

int main(){
    
    int arr [12] = {1, 2, 3};
    cout<<arr[0]<<endl; // 1
    cout<<arr[1]<<endl; // 2
    cout<<arr[2]<<endl; // 3
    cout<<arr[3]<<endl; // 越界 
}

2. 初始化规则

  • 只有在定义数组时,才能初始化,无法将一个数组赋给另一个数组。
int main() {

    int arr [12] = {1, 2, 3}; //Y
    int arr1 [12]; //Y
    arr1[0]  = 3; //Y
    //arr1 = {1 ,2, 3}; //N   只能在定义时赋值
    //arr1 = arr; //N 不能赋值给另一个数组 

    cout<<arr[0]<<endl;
    cout<<arr[1]<<endl;
    cout<<arr[2]<<endl;

}

  • 初始化数组可以提供少于数组的元素数目,其他元素编译器默认设置为0。
  • 初始化数组如果为int arr[5] = {1},那么第一个元素为1,其它设置为0。
  • 初始化数组arraySize可以不填,编译器将计算元素个数  .

3.  C++11的数组初始化方式        

int main() {

    //可以省略等号
    int arr [3] {1, 2, 3};
    
    //可以不在大括号中填值,默认为0
    int arr1[2]{};
    
    //初始化禁止缩窄
    //int arr2[3] = {3.4,5.6}; // error 浮点数不能转为int

}

 4.  数组的替代品       

 4.1  模板类vector

        它是new创建动态数组的替代品,计算机会自动完成new和delete管理内存的步骤,vector可以在运行阶段设置对象的常服,末尾附加新的数据,中间插入新的数据等。在堆申请内存。

       声明模板 : vector<typeName> vt(n_elem) 

       该模板声明了一个名为vt的vector对象,可存储n_elem个typeName对象。其参数n_elem可以是整型常量,也可以是整型变量。

        需要包含头文件 #include<vector>

4.2 模板类 array

        它是定长数组的替代品,array长度是固定的,使用栈内存。可以直接将一个array对象赋值给另一个array对象,而数组必须逐个元素赋值。

        声明模板: array<typeName,num> vt;

        该模版声明了一个名为vt的array对象,它包含num个typeName对象,其参数num只能为整型常量。

         需要包含头文件 #include<array>

待续~

        

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值