自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(10)
  • 收藏
  • 关注

原创 std::memory_order

C++11引入了枚举类型std::memory_order,用于指定原子操作的内存顺序约束。

2024-02-29 15:59:33 826

原创 std::thread和std::this_thread

std::thread 是 C++11 标准库的一部分,提供了一个表示单个执行线程的类。它允许程序员在 C++ 程序中创建和控制线程,使得可以并行地执行任务。使用 std::thread,你可以启动新的线程并与主线程并发执行,从而提高应用程序的响应性和性能,特别是在多核处理器上。std::this_thread 是 C++11 引入的一个命名空间,提供了一组与当前线程相关的函数。这些函数允许你控制当前线程的行为,比如让线程休眠、获取线程的ID,以及对线程的中断请求进行检查。

2024-02-28 18:49:34 960

原创 std::future

std::future提供了访问异步操作结果的机制。它对于并发编程特别有用,允许主线程在另一个线程执行操作时继续执行而不阻塞。必须确保在状态有效的情况下(valid()==true)调用std::future的get(),否则可能导致未定义行为。std::future只能被移动,不能被复制,确保只有一个线程可以检索异步操作的结果。

2024-02-28 16:12:42 358

原创 RAII(Resource Acquisition Is Initialization)

RAII(Resource Acquisition Is Initialization)是一种在C++中广泛使用的编程惯用法,它的核心思想是利用局部对象的生命周期管理资源。RAII确保资源在对象创建时获得,并在对象的生命周期结束时(即对象被销毁时)释放,从而提供了一种异常安全的资源管理机制,避免资源泄露和指针悬挂等问题。

2024-02-27 16:36:56 372

原创 智能指针(C++)

智能指针是一种在C++中用于管理动态分配的内存的类。它们封装了原始指针,提供了自动化的内存管理,帮助避免内存泄漏和野指针等常见问题。C++标准库提供了几种类型的智能指针,主要包括std::unique_ptr、std::shared_ptr和std::weak_ptr。C++11引入了std::unique_ptr、std::shared_ptr和std::weak_ptr,以及相关功能,如std::make_shared和后来在C++14中加入的std::make_unique。

2024-02-27 16:06:20 347

原创 左值和右值,左值引用和右值引用

本文介绍C++中的左值和右值,以及左值引用和右值引用。

2024-02-27 11:42:12 896

原创 lambda表达式

Lambda 表达式是 C++11 引入的一种便捷的匿名函数特性,它允许你在需要函数对象的地方写下一个快速的内联函数。Lambda 表达式对于STL算法或任何需要函数作为参数的场合特别有用,它可以简化代码,增加灵活性和可读性。Lambda 表达式是 C++11 引入的一种功能,允许定义匿名函数对象直接在需要它们的地方。Lambda 表达式广泛应用于 STL 算法、事件处理、并行计算等场合,提高了代码的简洁性和灵活性。

2024-02-22 11:33:22 318

原创 折叠表达式 (fold expression)

折叠表达式是C++17中引入的一项特性,旨在简化可变参数模板的处理。它允许开发者对模板参数包中的所有元素执行一个给定的操作符,从而将它们“折叠”成单一的值。折叠表达式是C++17标准的一个强大特性,它为模板编程提供了更高效、更简洁的方式来处理可变数量的参数。通过使用折叠表达式,开发者可以轻松实现参数包的累积、逻辑操作等复杂操作,无需依赖于复杂的模板递归或其他技巧。

2024-02-21 16:05:40 376

原创 基于范围的for循环

基于范围的for循环是C++11标准中引入的一种新循环结构,它允许更简洁地遍历容器(如数组、向量等)。使用auto关键字可以自动推导出遍历元素的类型,这使得代码更简洁且易于维护。基于范围的for循环结合auto关键字,提供了一种更加简洁和灵活的方式来遍历容器中的元素,同时减少了因类型错误而导致的编译错误。

2024-02-20 14:55:05 347

原创 结构化绑定

结构化绑定是C++17引入的一种新特性,它允许从数组、元组或结构体中方便地解包(unpack)值到独立的变量中。这使得处理多值返回或复杂数据结构时代码更加简洁和清晰。结构化绑定大大简化了多值返回和复杂数据访问的处理,是现代C++代码中一个非常有用的工具。

2024-02-19 18:14:54 417 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除