自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 C++ 标准库tuple类型详细介绍

在C++中,std::tuple是一个标准库类型,它允许你在单个对象中存储多个不同类型的值。与结构体(struct)类似,std::tuple是一种将不同类型的值聚合在一起的方式,但std::tuple更为灵活,可以动态地存储任意类型和数量的元素。

2024-08-20 23:26:05 386

原创 C++中的右值引用(Rvalue References)与移动语义(Move Semantics)详解

左值(Lvalue):指的是可以识别的位置值,通常是变量名或对象。左值有持久性,可以被取地址。例如,int x = 10;中的x是一个左值。右值(Rvalue):指的是不具名的临时值,它们通常是表达式的结果,不能被取地址。例如,10x + 5都是右值。右值引用引入之前,C++的函数参数只能接受左值引用或按值传递。这导致了不必要的拷贝,尤其是在处理大对象时,效率较低。右值引用和移动语义的引入解决了这个问题。右值引用和移动语义是C++11引入的强大特性,它们允许更高效地管理资源,减少不必要的拷贝操作。

2024-08-20 22:14:06 358

原创 C++中的可变模板(Variadic Templates)详解

可变模板是指模板可以接受任意数量的模板参数,这些参数可以是类型参数(如typename T)或非类型参数(如int N可变模板使得编写处理多个参数的泛型代码更加简洁和高效。可变模板的关键在于使用了模板参数包(template parameter pack),它是一个包含任意数量模板参数的包。通过展开模板参数包,可以处理这些参数。可变模板是C++11引入的强大特性,极大地增强了C++的泛型编程能力。通过可变模板,程序员可以编写更加灵活和通用的代码,处理任意数量的模板参数和函数参数。

2024-08-19 18:00:34 733

原创 C++中的Lambda表达式详解

Lambda表达式,也称为匿名函数,是一种可以在函数内部或其他任何地方定义的未命名函数。它允许你在需要函数的地方直接定义一个函数,而不必先在其他地方声明和定义。在算法函数(如std::sort等)中传递自定义的操作。定义一次性使用的小型函数,避免为简单的操作单独定义函数。在并发编程中传递函数对象。Lambda表达式为C++引入了强大的匿名函数功能,使得代码更加简洁、高效。

2024-08-19 17:47:38 812

原创 【C++ 面向对象编程】- OOP 100个优秀习惯和注意事项 【建议珍藏】!!

在这篇博客中,我们将探索 100 个 C++ 编程的优秀习惯。这些习惯涵盖了从代码风格、性能优化、内存管理,到现代 C++ 特性的应用等各个方面。无论你是一个经验丰富的 C++ 开发者,还是一个刚刚踏入 C++ 世界的新手,这些习惯都能帮助你写出更加高效、健壮和可维护的代码。这些习惯不仅有助于减少潜在的错误,还能提升代码的可读性和维护性。

2024-08-13 23:30:18 849

原创 【侯捷 C++】STL标准库和泛型编程 超详细-万字笔记总结-学习笔记

【侯捷 STL标准库和泛型编程】 超详细 万字笔记总结-学习笔记 STL —— Standard Template Library,标准模板库C++ Standard LIbrary,C++标准库中包含STL(即STL+一些小东西)STL六大部件:容器(Containers)、分配器(Allocators)、算法(Algorithms)、迭代器(Iterators)、仿函数(Functors)、适配器(Adapters)

2024-08-13 18:29:22 991

原创 【C++ STL适配器】详细介绍

在C++中,适配器模式通过提供一个适配层,使得不同接口之间可以进行兼容。无论是容器适配器、迭代器适配器还是函数适配器,它们都使得C++的标准库更加灵活和强大,能够满足各种复杂的编程需求。

2024-08-13 18:03:14 774

原创 【C++ STL仿函数】详细介绍

自定义排序规则:通过仿函数定制排序算法中的排序逻辑。自定义操作:在等算法中,通过仿函数执行复杂的操作。状态管理:通过仿函数的成员变量在算法中保存状态信息。仿函数是C++中一个强大且灵活的特性,它结合了对象的状态和函数的行为,使得在STL中使用自定义操作变得更加方便。通过理解仿函数的概念和应用,程序员可以编写出更灵活、更高效的代码。关键点总结:仿函数是对象化的函数:它们通过重载operator()来实现函数调用的行为。标准库提供了常用的仿函数:如算术、关系、逻辑、位运算等仿函数。

2024-08-13 16:49:32 791

原创 【C++ STL算法】详细介绍

C++ STL 中的算法提供了强大而灵活的工具集,涵盖了各种常见的操作需求。掌握这些算法的使用技巧不仅可以提高代码的效率,还能增强代码的可读性和维护性。通过理解算法的分类和各自的功能,可以更加有效地利用 STL 来解决复杂的编程问题。关键点总结:泛型性:STL算法可以与任何支持迭代器的容器配合使用。效率:大多数算法都是高效实现的,如std::sort是一种快速排序的实现。灵活性:通过组合不同的算法和迭代器,几乎可以完成所有常见的数据操作需求。

2024-08-13 16:40:45 721

原创 【C++ STL迭代器】详细介绍

C++ 允许用户定义自己的迭代器,通过实现迭代器接口的相关函数,可以将自定义数据结构与 STL 算法结合使用。

2024-08-13 16:29:35 971

原创 【C++ STL分配器】详细介绍

自定义分配器允许开发者控制内存管理策略。例如,可以实现一个内存池分配器,以减少频繁的内存分配和释放带来的开销。// 假设已经定义了 PoolAllocator<T>// 预留空间i < 100;在上述示例中,使用了自定义的,从而在插入元素时使用内存池进行内存管理。分配器是 C++ 中强大的内存管理工具,通过自定义分配器,开发者可以针对特定的应用场景优化内存分配策略。理解分配器的工作原理和正确使用方法,对于编写高性能和高可靠性的代码至关重要。

2024-08-13 15:56:42 505

原创 【C++万能头文件】 #include<bits/stdc++.h> 详细介绍

虽然在竞赛编程中很方便,但在实际开发中应尽量避免使用这种方式。明确包含所需的头文件不仅能提高代码的可读性和可维护性,还能减少编译时间,符合良好的编程规范。

2024-07-25 14:17:11 1477

原创 【求助】windows摄像头/相机黑屏、闪退,错误代码:0xA00F4240、0xA00F4292

最近发现windows锁屏不能人脸识别,摄像头/相机黑屏无法使用,有时还会闪退蓝屏。尝试过驱动重装、卸载相机应用并重装皆无效,目前相机无法使用,Windows Hello无法使用。错误代码:0xA00F4240

2024-07-25 14:07:15 883 1

原创 MarkDown语法笔记

本文介绍Obsidian中使用MarkDown的一些语法格式

2024-07-23 22:35:12 225

原创 【C++关键字】explicit 讲解

explicit关键字在 C++ 中非常有用,它可以防止意外的隐式转换,从而提高代码的安全性和可读性。它通常用于构造函数和转换运算符,以确保这些函数只能通过显式调用来使用。

2024-07-22 12:18:48 401

空空如也

空空如也

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

TA关注的人

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