专业编程基础技术教程

网站首页 > 基础教程 正文

C++特性:初始化各种容器和对象std::initializer_list

ccvgpt 2024-10-10 05:02:42 基础教程 15 ℃

std::initializer_list是在C++11标准中引入的。C++11引入了许多新的特性和改进,其中包括std::initializer_list,它允许以初始化列表的形式进行对象初始化。这使得初始化容器、数组和自定义类型的对象变得更加方便和直观。

#include <iostream>
#include <vector>
#include <initializer_list>

int main() {
    // 使用 std::initializer_list 初始化 vector
    std::vector<int> numbers = {1, 2, 3, 4, 5};
    
    // 使用 std::initializer_list 初始化数组
    int array[] = {6, 7, 8, 9, 10};
    
    // 使用 std::initializer_list 初始化自定义类型
    struct Point {
        int x;
        int y;
    };
    
    std::initializer_list<Point> points = {{1, 2}, {3, 4}, {5, 6}};
    
    // 输出 vector 的元素
    std::cout << "Vector elements: ";
    for (const auto& num : numbers) {
        std::cout << num << " ";
    }
    std::cout << std::endl;
    
    // 输出数组的元素
    std::cout << "Array elements: ";
    for (const auto& val : array) {
        std::cout << val << " ";
    }
    std::cout << std::endl;
    
    // 输出自定义类型的元素
    std::cout << "Point coordinates: ";
    for (const auto& point : points) {
        std::cout << "(" << point.x << "," << point.y << ") ";
    }
    std::cout << std::endl;
    
    return 0;
}

在上述示例中,我们使用std::initializer_list初始化了一个std::vector,一个数组和一个自定义类型(Point)的列表。无论您要初始化哪种类型的数据结构,std::initializer_list都提供了一种方便的方式来进行列表初始化。

C++特性:初始化各种容器和对象std::initializer_list

最近发表
标签列表