Hello World 与现代 C++ 特性

知识库
知识库文档
/tech-stacks/cpp/examples/Hello World 与现代 C++ 特性.md

文档

C++ Hello World 与现代 C++ 特性

目标

展示 C++20 标准下的 Hello World 及常用现代 C++ 特性(auto、范围 for、lambda、智能指针)。

完整代码

#include <iostream>
#include <vector>
#include <memory>
#include <algorithm>
#include <ranges>   // C++20 ranges

using namespace std;

int main() {
    // 1. Hello World
    cout << "Hello, C++20 World!" << endl;

    // 2. auto 类型推导
    auto message = string{"C++ 现代特性演示"};
    cout << message << endl;

    // 3. 范围 for + 初始化列表
    vector<int> nums = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};

    // 4. Lambda 表达式 + ranges (C++20)
    auto even_squares = nums
        | ranges::views::filter([](int n) { return n % 2 == 0; })
        | ranges::views::transform([](int n) { return n * n; });

    cout << "偶数的平方: ";
    for (int n : even_squares) {
        cout << n << " ";
    }
    cout << endl;

    // 5. 智能指针(自动管理内存)
    auto ptr = make_unique<vector<string>>();
    ptr->push_back("智能指针");
    ptr->push_back("自动释放内存");
    cout << "vector 元素数: " << ptr->size() << endl;

    // 6. 结构化绑定 (C++17)
    auto [sum, count] = []() -> pair<int, int> {
        return {42, 7};
    }();
    cout << "sum = " << sum << ", count = " << count << endl;

    return 0;
}

运行步骤

# 编译(需 GCC 10+ 或 Clang 14+,起用 C++20)
g++ -std=c++20 -o hello hello.cpp
# 运行
./hello

预期输出

Hello, C++20 World!
C++ 现代特性演示
偶数的平方: 4 16 36 64 100
vector 元素数: 2
sum = 42, count = 7

关键点

  • auto 让类型推导交给编译器,减少冗长声明
  • ranges::views 是 C++20 延迟求值的管道操作
  • make_unique 替代 new,RAII 自动管理生命周期
  • Lambda 是现代 C++ 的核心,配合 algorithm 使用能显著减少代码量

信息

路径
/tech-stacks/cpp/examples/Hello World 与现代 C++ 特性.md
更新时间
2026/5/30