C++核心技术精要:从基础到实战,LeetCode 148.排序链表。
C++基础语法核心技术详解
变量与数据类型
C++提供丰富的数据类型支持,包括基本类型和复合类型。基本类型分为整型(int、short、long)、浮点型(float、double)、字符型(char)和布尔型(bool)。复合类型包含数组、结构体、联合体和枚举。
变量声明需要指定类型和标识符:
int count = 0; double price = 9.99; char grade = 'A';运算符与表达式
C++运算符分为算术运算符、关系运算符、逻辑运算符、位运算符等。特别注意自增/自减运算符的前置与后置区别:
int a = 5; int b = a++; // b=5, a=6 int c = ++a; // c=7, a=7控制结构
条件控制包含if-else和switch语句。循环结构包括while、do-while和for循环。现代C++推荐使用范围for循环遍历容器:
std::vector<int> vec = {1,2,3}; for(auto& num : vec) { num *= 2; }函数与参数传递
函数定义包含返回类型、函数名和参数列表。参数传递方式影响程序行为:
- 值传递:创建参数副本
- 引用传递:直接操作原变量
- 指针传递:通过地址访问变量
void swap(int& a, int& b) { int temp = a; a = b; b = temp; }指针与内存管理
指针存储内存地址,使用解引用运算符*访问数据。动态内存分配通过new和delete实现:
int* ptr = new int(10); delete ptr;智能指针(unique_ptr、shared_ptr)可自动管理内存生命周期:
std::unique_ptr<int> smartPtr = std::make_unique<int>(20);面向对象编程
类定义包含数据成员和成员函数。构造函数初始化对象,析构函数清理资源。访问控制符public、private、protected决定成员可见性。
class Rectangle { private: double width, height; public: Rectangle(double w, double h) : width(w), height(h) {} double area() const { return width * height; } };标准模板库(STL)
STL提供常用数据结构和算法:
- 容器:vector、list、map等
- 算法:sort、find、transform等
- 迭代器:连接容器与算法的桥梁
std::vector<std::string> names = {"Alice", "Bob"}; std::sort(names.begin(), names.end());异常处理
try-catch块处理运行时错误。throw抛出异常,catch捕获并处理异常:
try { if(b == 0) throw "Division by zero"; return a/b; } catch(const char* msg) { std::cerr << msg << std::endl; }现代C++特性
C++11及后续版本引入重要特性:
- auto类型推导
- 基于范围的for循环
- 移动语义和右值引用
- lambda表达式
- constexpr编译期计算
auto sum = [](auto a, auto b) { return a + b; }; std::cout << sum(3.5, 4) << std::endl; // 输出7.5掌握这些核心技术可构建高效可靠的C++应用程序。建议通过实际项目练习巩固理解,并持续关注C++标准演进。
https://github.com/bass-cropper5f/965_adqh/blob/main/README.md
https://raw.githubusercontent.com/bass-cropper5f/965_adqh/main/README.md
https://github.com/rambles-loams-8e/i6m_wdqt
https://github.com/rambles-loams-8e/i6m_wdqt/blob/main/README.md
https://raw.githubusercontent.com/rambles-loams-8e/i6m_wdqt/main/README.md
