- 博客(37)
- 收藏
- 关注
原创 并发支持库(5)-future
std::future是c++种的一个模板类,它提供了一种方式来异步获取一个操作的结果。std::future通常配合std::promise、std::packaged_task、std::async使用。
2024-03-13 20:07:04
426
原创 容器库(16)-std::priority_queue
std::priority_queue是一种容器适配器,它内部的元素是按顺序排列的,默认情况下最大元素总是在队列顶部。可以自定义Compare来改变元素的排列顺序。
2024-02-27 20:57:56
686
原创 容器库(13)-std::unordered_multimap
unordered_multimap是含有键值对的无序关联容器,搜索、移除和插入操作是平均常数的时间复杂度。unordered_multimap在内部没有按任何顺序排列,而是放在桶当中的,放进哪个桶是通过计算key的hash值来决定的。和unordered_map不同的是,unordered_multimap中的key值可以重复。
2024-02-26 23:05:52
1011
原创 容器库(12)-std::unordered_multiset
unordered_multiset是以key为元素无序的关联容器,搜索、移除和插入操作是平均常数的时间复杂度。unordered_multiset在内部没有按任何顺序排列,而是放在桶当中的,放进哪个桶是通过计算key的hash值来决定的。和unordered_set不同的是,unordered_multiset中的key值可以重复。
2024-02-26 23:05:23
1101
原创 容器库(11)-std::unordered_map
unordered_map是含有唯一key的键值对的无序关联容器,搜索、移除和插入操作是平均常数的时间复杂度。unordered_map在内部没有按任何顺序排列,而是放在桶当中的,放进哪个桶是通过计算key的hash值来决定的。
2024-02-25 21:11:40
1269
原创 容器库(10)-std::unordered_set
unordered_set是以key为元素无序的关联容器,搜索、移除和插入操作是平均常数的时间复杂度。unordered_set在内部没有按任何顺序排列,而是放在桶当中的,放进哪个桶是通过计算key的hash值来决定的。
2024-02-21 20:59:50
1051
原创 容器库(9)-std::multimap
std::multimap是一种关联容器,包含键值对的已排序的列表。和std::map不同的是,std::multimap允许重复的key值。搜索、移除和插入操作具有对数复杂度。
2024-02-20 21:34:48
1148
原创 容器库(8)-std::multiset
std::multiset是以key为元素的有序关联容器,和std::set不同的是,std::multiset中的key可以重复。
2024-02-19 21:41:22
943
原创 容器库(5)-std::list
std::forward_list是可以从任何位置快速插入和移除元素的容器,不支持快速随机访问,支持正向和反向的迭代。
2024-02-07 14:53:16
2331
1
原创 容器库(4)-std::forward_list
std::forward_list是可以从任何位置快速插入和移除元素的容器,不支持快速随机访问,只支持正向迭代。
2024-02-06 19:32:36
2336
1
原创 容器库(3)-std::deque
std::deque是有索引的序列容器,它允许在它的首尾两端快速插入及删除元素,和vector不同的是,deque底层的内存不是连续的。
2024-02-04 23:38:34
1018
1
原创 容器库(2)-std::vector
std::vector管理的是动态分配的数组,可以在运行时添加和删除元素。vector管理的底层内存是连续的,当添加元素时没有剩余容量时,vector会重新申请一片新的合适大小的连续内存。
2024-01-31 19:17:48
1125
原创 字符串库(2)-std::basic_string_view
basic_string_view提供对字符串的只读访问,它并不占有对字符串的所有权,提供对字符串轻量和安全的访问。从实现上来说,basic_string_view只包含指向字符串的指针以及字符串的大小。
2024-01-26 14:53:05
1096
1
原创 日期时间库(3)-时钟
时钟由时间起点和计次频率组成,c++中定义了system_clock、steady_clock、high_resolution_clock、utc_clock、tai_clock、gps_clock、file_clock、local_t等时钟。
2024-01-10 16:34:12
485
原创 日期时间库(1)-时长
类模版std::chrono::duration表示时间间隔,它由Rep类型的计次数和计次周期组成,其中计次周期是一个编译期有理数,表示从一个计次到下一个计次的秒数。Rep可以是整数类型,也可以是浮点数类型。
2024-01-09 17:12:07
397
原创 智能指针weak_ptr
智能指针weak_ptr对shared_ptr管理的对象存在弱引用,即weak_ptr并不会增加引用对象的引用计数。weak_ptr是对shared_ptr的一种"观察",可以检查shared_ptr管理对象的是否被删除以及引用计数等,但是weak_ptr不能直接使用引用的对象,需要使用lock接口创建其引用对象的shared_ptr。
2024-01-06 17:08:37
424
1
原创 智能指针shared_ptr
shared_ptr是通过指针保持对象共享所有权的智能指针。shared_ptr保存所管理对象的引用计数,当引用计数变为0时,对象将被删除。shared_ptr可以管理单个对象,也可以管理动态分配的对象数组。shared_ptr满足可复制构造、可复制赋值、可移动构造以及可移动赋值的要求。
2024-01-06 15:47:04
1079
1
原创 智能指针unique_ptr
unique_ptr通过指针占有并管理另一个对象(主要负责管理对象的销毁,或者说生命周期)。当unique_ptr被销毁时或者给unique_ptr赋值另一个对象的指针时,unique_ptr将删除原来管理的对象。unique_ptr可以管理单个对象,也可以管理动态分配的对象数组。unique_ptr类满足可移动构造以及可移动赋值,但是不满足可复制构造和可复制赋值的要求。
2024-01-05 21:41:40
947
1
原创 使用clang-format格式化c++代码
clang-format是一个可以格式化代码的工具,本文将介绍如何在命令行中使用clang-format来格式化c++代码,然后会给出一种在c++工程中利用脚本来格式化所有c++文件的工作流程,最后将介绍clang-format中的配置字段,根据自定义的配置字段可以创建自己的代码格式风格。我们可以通过修改.clang-format文件中的字段来实现自己的代码风格,可参考clang-format的官方文档:本节内容基于clang-format 17。
2023-12-30 22:10:33
4889
原创 spdlog 简要解析
spdlog 是一个 c++ 日志库,支持同步异步日志、多线程日志、日志格式配置、多种对端输出等功能,这篇文章对 spdlog 的源码做一个简单的梳理,主要介绍 spdlog 打印日志的流程。
2023-11-08 22:14:12
1050
2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人