文档
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 使用能显著减少代码量