C++初始化数组的几种常见方法(简单易懂)

 更新时间:2025年02月21日 11:29:04   作者:阳阳小可爱  
本文介绍了C++中数组的初始化方法,包括一维数组和二维数组的初始化,以及用new动态初始化数组,在C++11及以上版本中,还提供了使用std::array和std::vector进行静态和动态初始化的方式,需要的朋友可以参考下

在 C++ 中,初始化数组有几种方式,具体取决于数组的类型、大小以及是否给定初始值

下面是提供几种常见的数组初始化方法:

1、初始化一维数组

1.1、使用列表初始化(推荐方式)

#include <iostream>
 
int main() {
    // 初始化数组,指定元素
    int arr[5] = {1, 2, 3, 4, 5};
 
    // 输出数组内容
    for (int i = 0; i < 5; i++) {
        std::cout << arr[i] << " ";
    }
 
    return 0;
}

1.2、初始化部分列表

#include <iostream>
 
int main() {
    // 只初始化前两个元素,其余元素默认为 0
    int arr[5] = {1, 2};
 
    // 输出数组内容
    for (int i = 0; i < 5; i++) {
        std::cout << arr[i] << " ";
    }
 
    return 0;
}

1.3、使用std::fill初始化列表

#include <iostream>
#include <algorithm>  // 包含 fill 函数
 
int main() {
    int arr[5];
    
    // 使用 fill 初始化数组,填充每个元素为 7
    std::fill(std::begin(arr), std::end(arr), 7);
    
    // 输出数组内容
    for (int i = 0; i < 5; i++) {
        std::cout << arr[i] << " ";
    }
 
    return 0;
}
 
// std::fill{7, 7, 7, 7, 7}

1.4、使用循环初始化列表

#include <iostream>
 
int main() {
    int arr[5];
 
    // 使用循环初始化数组
    for (int i = 0; i < 5; i++) {
        arr[i] = i * 2;  // 填充为偶数
    }
 
    // 输出数组内容
    for (int i = 0; i < 5; i++) {
        std::cout << arr[i] << " ";
    }
 
    return 0;
}

2、初始化二维数组

2.1、使用列表初始化数组

#include <iostream>
 
int main() {
    // 初始化二维数组
    int arr[3][2] = {{1, 2}, {3, 4}, {5, 6}};
    
    // 输出二维数组内容
    for (int i = 0; i < 3; i++) {
        for (int j = 0; j < 2; j++) {
            std::cout << arr[i][j] << " ";
        }
        std::cout << std::endl;
    }
 
    return 0;
}

2.2、 初始化部分二维数组

#include <iostream>
 
int main() {
    // 只初始化部分元素,其他元素将被填充为 0
    int arr[3][3] = {{1, 2}, {3, 4}};
    
    // 输出二维数组内容
    for (int i = 0; i < 3; i++) {
        for (int j = 0; j < 3; j++) {
            std::cout << arr[i][j] << " ";
        }
        std::cout << std::endl;
    }
 
    return 0;
}

2.3、循环初始化二维数组

#include <iostream>
 
int main() {
    int arr[3][3];
    
    // 使用循环初始化二维数组
    for (int i = 0; i < 3; i++) {
        for (int j = 0; j < 3; j++) {
            arr[i][j] = i * 3 + j;  // 使用索引填充
        }
    }
 
    // 输出二维数组内容
    for (int i = 0; i < 3; i++) {
        for (int j = 0; j < 3; j++) {
            std::cout << arr[i][j] << " ";
        }
        std::cout << std::endl;
    }
 
    return 0;
}

3、用new动态初始化数组

#include <iostream>
 
int main() {
    int* arr = new int[5];  // 动态分配大小为 5 的数组
 
    // 初始化数组
    for (int i = 0; i < 5; i++) {
        arr[i] = i * 2;  // 填充偶数
    }
 
    // 输出动态数组内容
    for (int i = 0; i < 5; i++) {
        std::cout << arr[i] << " ";
    }
 
    delete[] arr;  // 释放动态分配的数组内存
    return 0;
}

4、 C++11 中的初始化方式

在 C++11 及以上版本中提供了更灵活的数组类型。

4.1、使用std::array静态初始化数组

#include <iostream>
#include <array>
 
int main() {
    std::array<int, 5> arr = {1, 2, 3, 4, 5};  // 使用 std::array 初始化
 
    // 输出 std::array 内容
    for (int i = 0; i < 5; i++) {
        std::cout << arr[i] << " ";
    }
 
    return 0;
}

4.2、使用 std::vector动态初始化数组

#include <iostream>
#include <vector>
 
int main() {
    std::vector<int> vec = {1, 2, 3, 4, 5};  // 使用 std::vector 初始化
 
    // 输出 std::vector 内容
    for (size_t i = 0; i < vec.size(); i++) {
        std::cout << vec[i] << " ";
    }
 
    return 0;
}

以上就是C++初始化数组的几种常见方法(简单易懂)的详细内容,更多关于C++初始化数组的资料请关注脚本之家其它相关文章!

相关文章

  • C++11的future和promise、parkged_task使用

    C++11的future和promise、parkged_task使用

    这篇文章主要介绍了C++11的future和promise、parkged_task使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-04-04
  • C/C++ Qt Dialog 对话框组件应用技巧

    C/C++ Qt Dialog 对话框组件应用技巧

    这篇文章主要介绍了C/C++ Qt Dialog 对话框组件应用,这里我将总结本人在开发过程中常用到的标准对话框的使用技巧,对C++ 对话框组件相关知识感兴趣的朋友一起看看吧
    2021-11-11
  • C/C++ Qt 给ListWidget组件增加右键菜单功能

    C/C++ Qt 给ListWidget组件增加右键菜单功能

    本篇文章给大家介绍ListWidget组件增加一个右键菜单,当用户在ListWidget组件中的任意一个子项下右键,我们让其弹出这个菜单,并根据选择提供不同的功能,感兴趣的朋友跟随小编一起看看吧
    2021-11-11
  • C语言用栈实现十进制转换为二进制的方法示例

    C语言用栈实现十进制转换为二进制的方法示例

    这篇文章主要介绍了C语言用栈实现十进制转换为二进制的方法,结合实例形式分析了C语言栈的定义及进制转换使用技巧,需要的朋友可以参考下
    2017-06-06
  • C++实现LeetCode(50.求x的n次方)

    C++实现LeetCode(50.求x的n次方)

    这篇文章主要介绍了C++实现LeetCode(50.求x的n次方),本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下
    2021-07-07
  • C语言如何实现可变参数详解

    C语言如何实现可变参数详解

    这种可变参数可以说是C语言一个比较难理解的部分,下面这篇文章主要给大家介绍了关于C语言如何实现可变参数的相关资料,需要的朋友可以参考下
    2021-07-07
  • 基于Qt开发一个简单的OFD阅读器

    基于Qt开发一个简单的OFD阅读器

    这篇文章主要为大家详细介绍了如何使用Qt框架开发一个功能强大且性能优异的OFD阅读器,文中的示例代码讲解详细,有需要的小伙伴可以参考一下
    2025-01-01
  • C++中套接字库sockpp的使用详解

    C++中套接字库sockpp的使用详解

    sockpp是一个开源、简单、现代的C++套接字库,这篇文章主要为大家详细介绍一下套接字库sockpp的使用,文中的示例代码讲解详细,感兴趣的小伙伴可以学习一下
    2023-11-11
  • 深入理解c语言数组

    深入理解c语言数组

    这篇文章主要介绍了c语言数组,有需要的朋友可以参考一下
    2013-12-12
  • Qt实现http服务的示例代码

    Qt实现http服务的示例代码

    这篇文章将为大家详细讲解有关Qt如何实现http服务,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获
    2023-04-04

最新评论