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

2025-02-21 17:50

本文主要是介绍C++初始化数组的几种常见方法(简单易懂),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

《C++初始化数组的几种常见方法(简单易懂)》本文介绍了C++中数组的初始化方法,包括一维数组和二维数组的初始化,以及用new动态初始化数组,在C++11及以上版本中,还提供了使用std::array...

在 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};
javascript 
    // 输出数组内容
    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 maiChina编程n() {
    int arr[5];
 
    // 使用循环初始化数组
    for (int i = 0; i < 5; i++) {
        arr[i] = http://www.chinasem.cni * 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] <&lpythont; " ";
        }
        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++初始化数组的资料请关注China编程(www.chinasem.cn)其它相关文章!

这篇关于C++初始化数组的几种常见方法(简单易懂)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1153491

相关文章

C++11范围for初始化列表auto decltype详解

《C++11范围for初始化列表autodecltype详解》C++11引入auto类型推导、decltype类型推断、统一列表初始化、范围for循环及智能指针,提升代码简洁性、类型安全与资源管理效... 目录C++11新特性1. 自动类型推导auto1.1 基本语法2. decltype3. 列表初始化3

C++11右值引用与Lambda表达式的使用

《C++11右值引用与Lambda表达式的使用》C++11引入右值引用,实现移动语义提升性能,支持资源转移与完美转发;同时引入Lambda表达式,简化匿名函数定义,通过捕获列表和参数列表灵活处理变量... 目录C++11新特性右值引用和移动语义左值 / 右值常见的左值和右值移动语义移动构造函数移动复制运算符

Linux系统中查询JDK安装目录的几种常用方法

《Linux系统中查询JDK安装目录的几种常用方法》:本文主要介绍Linux系统中查询JDK安装目录的几种常用方法,方法分别是通过update-alternatives、Java命令、环境变量及目... 目录方法 1:通过update-alternatives查询(推荐)方法 2:检查所有已安装的 JDK方

SQL Server安装时候没有中文选项的解决方法

《SQLServer安装时候没有中文选项的解决方法》用户安装SQLServer时界面全英文,无中文选项,通过修改安装设置中的国家或地区为中文中国,重启安装程序后界面恢复中文,解决了问题,对SQLSe... 你是不是在安装SQL Server时候发现安装界面和别人不同,并且无论如何都没有中文选项?这个问题也

Java Thread中join方法使用举例详解

《JavaThread中join方法使用举例详解》JavaThread中join()方法主要是让调用改方法的thread完成run方法里面的东西后,在执行join()方法后面的代码,这篇文章主要介绍... 目录前言1.join()方法的定义和作用2.join()方法的三个重载版本3.join()方法的工作原

Spring Bean初始化及@PostConstruc执行顺序示例详解

《SpringBean初始化及@PostConstruc执行顺序示例详解》本文给大家介绍SpringBean初始化及@PostConstruc执行顺序,本文通过实例代码给大家介绍的非常详细,对大家的... 目录1. Bean初始化执行顺序2. 成员变量初始化顺序2.1 普通Java类(非Spring环境)(

C++中detach的作用、使用场景及注意事项

《C++中detach的作用、使用场景及注意事项》关于C++中的detach,它主要涉及多线程编程中的线程管理,理解detach的作用、使用场景以及注意事项,对于写出高效、安全的多线程程序至关重要,下... 目录一、什么是join()?它的作用是什么?类比一下:二、join()的作用总结三、join()怎么

Java中使用 @Builder 注解的简单示例

《Java中使用@Builder注解的简单示例》@Builder简化构建但存在复杂性,需配合其他注解,导致可变性、抽象类型处理难题,链式编程非最佳实践,适合长期对象,避免与@Data混用,改用@G... 目录一、案例二、不足之处大多数同学使用 @Builder 无非就是为了链式编程,然而 @Builder

在MySQL中实现冷热数据分离的方法及使用场景底层原理解析

《在MySQL中实现冷热数据分离的方法及使用场景底层原理解析》MySQL冷热数据分离通过分表/分区策略、数据归档和索引优化,将频繁访问的热数据与冷数据分开存储,提升查询效率并降低存储成本,适用于高并发... 目录实现冷热数据分离1. 分表策略2. 使用分区表3. 数据归档与迁移在mysql中实现冷热数据分

Spring Boot从main方法到内嵌Tomcat的全过程(自动化流程)

《SpringBoot从main方法到内嵌Tomcat的全过程(自动化流程)》SpringBoot启动始于main方法,创建SpringApplication实例,初始化上下文,准备环境,刷新容器并... 目录1. 入口:main方法2. SpringApplication初始化2.1 构造阶段3. 运行阶