随笔分类 - C++学习日记
摘要:条件语句中的隐式类型转换 在 C++ 编程中,我们经常会看到这样的代码: int x = 5; if (x) { std::cout << "x 为真值" << std::endl; } 明明 x 是 int 类型,为什么可以直接作为 if 条件?其实,这是因为 C++ 支持将某些类型隐式转换为 b
        阅读全文
                
摘要:#include <iostream> #include <thread> #include <mutex> #include <condition_variable> #include <queue> std::queue<int> buffer; int sum = 0; std::mutex 
        阅读全文
                
摘要:1. 线程安全的计数器(Lock-based) 题目描述 创建 10 个线程,每个线程对同一个全局计数器累加 100 万次。最后输出计数器的值。 要求 计数器类型为 std::uint64_t。 使用互斥量(std::mutex 或 std::lock_guard/std::unique_lock)
        阅读全文
                
摘要:原子变量 std::atomic 🌟 目标:理解数据竞争的根源,掌握原子操作的语义,学会使用 std::atomic 来构建无锁线程安全程序。 📚 一、课程目标 理解什么是“原子性”和“数据竞争” 掌握 std::atomic 的使用方式和常见操作 了解原子变量与互斥锁的区别与联系 理解常见原子
        阅读全文
                
摘要:lambda 表达式详解 在现代 C++(从 C++11 起)中,lambda 表达式(又称匿名函数)是一种极大增强代码简洁性和灵活性的语法结构。它允许你直接在代码中定义可调用对象,无需事先命名函数。无论是在多线程、STL 算法、事件处理,还是回调函数场景中,lambda 都是利器。 本篇将带你系统
        阅读全文
                
摘要:好的,以下是你学习多线程的第 4 天课程设计:《线程通信:条件变量 std::condition_variable》。这是进入线程协作阶段非常重要的一课,理解它之后你可以写出更复杂、智能的多线程程序,比如生产者-消费者模型、线程唤醒机制等。 📘 Day 4:线程通信:条件变量 std::condi
        阅读全文
                
摘要:Day 2:数据竞争与互斥锁 std::mutex 在多线程编程中,线程间共享数据时常会遇到“数据竞争(Data Race)”的问题。为保证数据安全访问,C++ 标准库提供了 std::mutex 互斥锁机制,本文将详细介绍数据竞争的概念以及如何使用 std::mutex 来解决。 一、什么是数据竞
        阅读全文
                
摘要:以下是为你整理的博客文章: C++ 学习(6)——多线程(1) —— std::thread 在现代应用程序开发中,多线程已成为提升程序性能和响应速度的重要手段。本文将以一个简单的 C++ 示例介绍如何使用 std::thread 创建线程,并实现多任务并发执行。 一、前言 在 C++11 之前,C
        阅读全文
                
摘要:理解 C++ 中的浅复制与深复制:本质、区别与实践 在 C++ 中进行对象赋值或传参时,常常涉及“复制”操作。但复制并非简单的值传递——它背后隐藏着一对关键概念:浅复制(Shallow Copy)与深复制(Deep Copy)。 这两个概念对于管理资源、避免内存泄漏或悬挂指针等问题至关重要。本文将从
        阅读全文
                
摘要:深入理解 C++ 中的友元函数(Friend Function) 在 C++ 编程中,类的封装性通过将成员变量设为私有(private)或受保护(protected)来保障。然而,在实际开发中,某些场景下我们需要非成员函数访问类的私有成员。为此,C++ 提供了一个强有力的机制——友元函数(Frien
        阅读全文
                
摘要:C++构造函数详解及与Python中__init__的对比 在面向对象编程中,构造函数是类的一个重要组成部分。它的核心作用是在创建对象时进行初始化操作。本文将系统梳理C++中构造函数的概念、种类与使用方式,并与Python中类的初始化函数__init__进行对比,帮助读者建立跨语言的理解。 一、C+
        阅读全文
                
摘要:C++ 中 static 的用法详解【最全总结】 在 C++ 中,static 是一个用途非常广泛的关键字,常用于变量管理、内存控制、访问限制等多个层面。本文将系统性地总结 static 在不同上下文中的用法、背后原理与常见陷阱,帮助你真正吃透它。 一、static 的基本含义 static 表示 
        阅读全文
                
摘要:1.const修饰指向,指向不可改 这个一个常量指针的例子: int a = 10; const int* ptr = &a; 指的是不能通该指针来修改所指向地址的内容,例如 *p = 11;是非法的。 #include <iostream> int main() { int a = 10; con
        阅读全文
                
摘要:入门 1.安装 clion 2.新建工程 3.选择环境配置 代码 # include <iostream> using namespace std; int main() { cout << "hello world" << endl; system("pause"); return 0; }
        阅读全文
                
                    
                
浙公网安备 33010602011771号