只出现一次数字
给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。
stream流
流(Stream) 是C++中用于处理输入和输出的抽象概念。流可以看作是数据的通道,例如从键盘到程序,或者从程序到文件。C++标准库提供了多种流类型来处理不同的数据传输需求。
单例模式
单例模式(Singleton Pattern)是一种创建型设计模式,旨在确保一个类在整个应用程序生命周期中仅且只有一个实例,并提供一个全局访问点以获取该实例。设计单例模式的主要原因和作用包括以下几个方面:
万能引用和原样转发
**左值(lvalue)和右值(rvalue)**是C++中用于描述表达式值类别的重要概念。
模板详解
<font style="color:rgb(51, 51, 51);">C++ 模板(Templates)是现代 C++ 中强大而灵活的特性,支持泛型编程,使得代码更具复用性和类型安全性。模板不仅包括基本的函数模板和类模板,还涵盖了模板特化(全特化与偏特化)、模板参数种类、变参模板(Variadic Templates)、模板元编程(Template Metaprogramming)、SFINAE(Substitution Failure Is Not An Error)等高级内容。</font>
运算符重载
**运算符重载(Operator Overloading)**允许开发者为自定义类型定义或重新定义运算符的行为,使得自定义类型的对象能够使用与内置类型相同的运算符进行操作。这不仅提高了代码的可读性,还增强了代码的表达能力。
无序map封装
unordered_map 是 C++ 标准库中的关联容器,提供了基于哈希表的键值对存储结构。与 map (基于红黑树实现)不同,unordered_map 提供的是平均常数时间复杂度的查找、插入和删除操作,但不保证元素的顺序。
map用法及手写map算法
std::map 是 C++ 标准模板库(STL)中的一个关联容器,用于存储键值对(key-value pairs),其中每个键都是唯一的,并且按照特定的顺序(通常是升序)自动排序。std::map 通常基于红黑树实现,提供对元素的高效查找、插入和删除操作。
手写线程安全智能指针
在多线程环境下,确保智能指针的线程安全性主要涉及以下几个方面:
手写双端对列
双端队列(Double-Ended Queue,简称 deque)是一种允许在其两端进行高效插入和删除操作的数据结构。与普通队列(只允许在一端插入和另一端删除)相比,双端队列更为灵活。







