数组

C++中,数组就是一段连续的内存空间组成的定长的线性表数据结构,数组可以存放相同类型的若干个元素。

定义数组

C++中定义数组非常简单,下面例子我们直接在栈上分配内存,定义长度为3的整型数组,随后逐个赋值。

int arr[3];
arr[0] = 1;
arr[1] = 2;
arr[2] = 3;

如果你知道数组的初始值,我们也可以将其简化为下面写法,如果数组长度大于给定的元素个数,后面将补零。

int arr[3] = {1, 2, 3};

如果你的数组长度就是后面的元素个数,长度也可以省略。

int arr[] = {1, 2, 3};

在堆上分配数组相对复杂一些,我们需要使用new关键字,此外用完后不要忘了使用delete释放堆内存。

int *arr = new int[10];
arr[0] = 1;
delete[] arr;

获取数组长度

C++17中,可以直接使用标准库提供的std::size()函数用于获取数组长度。

#include <iostream>
#include <iterator>

int main() {
    int arr[3] = {1, 2, 3};
    int size = std::size(arr);
    std::cout << size << std::endl;
    return 0;
}

不过如果你使用的是低于C++17的版本,这通常要使用sizeof实现。

#include <iostream>

int main() {
    int arr[3] = {1, 2, 3};
    int size = sizeof(arr) / sizeof(arr[0]);
    std::cout << size << std::endl;
    return 0;
}

高维数组

数组的元素也可以是数组,这可以形成高维数组,下面是一个二位数组例子,它类似于2行3列的矩阵。

int mat[][] = {{1, 2, 3}, {4, 5, 6}};
作者:Gacfox
版权声明:本网站为非盈利性质,文章如非特殊说明均为原创,版权遵循知识共享协议CC BY-NC-ND 4.0进行授权,转载必须署名,禁止用于商业目的或演绎修改后转载。
Copyright © 2017-2024 Gacfox All Rights Reserved.
Build with NextJS | Sitemap