c++
文章平均质量分 75
香菜大丸
26届cpp/go选手
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
详解 指针函数,函数指针,函数指针函数
在一些STL源码或者linux源码经常能看到这些东西,确实挺让人头疼。原创 2024-11-25 22:56:09 · 638 阅读 · 0 评论 -
c++引用传参是否能完全避免临时对象?
引用绑定类型不匹配或者传入的是一个右值 则会产生临时对象再传给实参当我们需要修改传入的地址时才使用type*&否则使用type*或者type&即可。原创 2024-11-20 20:58:23 · 956 阅读 · 0 评论 -
c++临时对象详解
临时对象是生命周期非常短的对象,通常在表达式中为了满足某种特定需求而创建,并在表达式求值完成后立即销毁l临时对象是一个右值,可以用左值来接收。原创 2024-11-18 22:38:59 · 758 阅读 · 0 评论 -
协程详解之POSIX 上下文切换函数和libco协程库
协程(coroutine)是一种比线程更轻量的并发执行单元。与传统的线程不同,协程的调度通常是由程序控制,而不是操作系统内核。它能够在某个位置挂起执行,并且在稍后的某个时刻恢复,从而实现高效的任务切换。协程库在不同语言和框架中有不同的实现。原创 2024-11-14 23:32:20 · 918 阅读 · 0 评论 -
C++内存泄漏检查工具——Valgrind(--tool = memcheck)
内存泄漏检测:能够跟踪动态内存分配,确保分配的内存在不再需要时被正确释放。越界访问检测:帮助识别动态数组越界、空指针解引用等错误。未初始化变量检测:检测使用未初始化变量的情况。典型应用场景:当程序涉及大量的动态内存分配,或频繁出现无效内存访问、内存泄漏等问题时,用 Valgrind 非常有效。借鉴于C++内存泄漏检查工具——Valgrind(--tool = memcheck) - unique_ptr - 博客园。原创 2024-11-12 20:57:53 · 1147 阅读 · 0 评论 -
野指针和悬空指针详解
悬空指针是指向已被释放或超出作用域的内存区域的指针。此类指针原本指向有效的内存或对象,但当该内存被释放或对象生命周期结束后,指针依然指向这块无效的内存区域。这种指针从未指向一个合法的内存地址,因此是完全不可预测的,可能指向任意地址。可以看到虽然delete后指针对象仍然存在,但是指针已经失效,内存已被释放。:函数内部的局部变量地址在函数返回后被销毁,指向它的指针就成为悬空指针。delete或者free是释放指针指向内存 指针本身并未被处理。:指针算术操作导致越界,指针指向无效区域。原创 2024-11-12 19:46:20 · 726 阅读 · 0 评论 -
c++11智能指针 避免内存泄漏
简单来说内存泄漏是指程序中动态分配的内存,一块无法重新使用的内存资源智能指针是C++11引入的一种用于管理动态内存的类模板,它们提供了更安全和更方便的内存管理方式,以避免常见的内存管理问题,如内存泄漏和悬挂指针。智能指针会自动释放其所管理的对象,从而减少手动管理内存的需要。和。原创 2024-10-21 17:55:26 · 937 阅读 · 0 评论 -
enum枚举和强类型enum枚举
特性普通枚举 (enum强类型枚举 (enum class隐式转换允许隐式转换为整型不允许隐式转换,必须显式转换作用域枚举成员在外部可见枚举成员在枚举的作用域内可见命名冲突可能导致命名冲突避免命名冲突底层类型默认是int,可以指定默认是int,也可以指定语法使用成员名直接访问需要使用作用域运算符访问成员。原创 2024-10-21 16:11:18 · 301 阅读 · 0 评论 -
c++ STL深度探索之迭代器(算法和容器之间的桥梁)
定义:迭代器是一种数据类型,用于遍历容器中的元素。与C语言中的指针类似,迭代器允许我们访问容器中的元素,但提供了更丰富的操作和功能。用途:通过迭代器,我们可以读取、修改容器中某个迭代器所指向的元素值。迭代器支持++、--等操作符,可以从容器中的一个元素移动到另一个元素。类型:C++标准库为不同的容器定义了不同类型的迭代器。根据功能的不同,迭代器可以分为输入迭代器、输出迭代器、前向迭代器、双向迭代器和随机访问迭代器。原创 2024-06-23 20:45:18 · 2216 阅读 · 0 评论 -
C++双端队列deque源码的深度学习(stack,queue的默认底层容器)
deque是C++标准模板库(STL)中的一个容器,代表“双端队列”(double-ended queue)。deque支持在其前端(front)和后端(back)进行快速插入和删除操作,并且它在序列的中间插入和删除元素时通常比vector或list更高效。原创 2024-06-16 14:52:03 · 2311 阅读 · 0 评论 -
c++哈希表hash_table的深度学习(hash_map,un和hash_set的底层实现)
哈希表(Hash Table)是一种数据结构,它使用哈希函数将键(key)映射到桶(bucket)或槽(slot)中,可以直接通过相应的键值直接对数据进行访问,高效的插入,删除,查找。原创 2024-06-12 22:27:34 · 1688 阅读 · 1 评论 -
为什么c++不支持多次后置++而支持多次前置++?
cpp不支持多次后置++,因为后置++返回的是++操作前的原始数据用temp存储是一个临时数据(函数return后生命周期到了),也就是说返回的是一个右值,而++操作是在一个存在的对象上(也可以是基础类型)操作不能对右值操作所以会报错。也就是说传回的数据是已经存在的对象是个左值,所以你对一个已有对象多次前置++操作是没有问题的。cpp支持前置++,前置++返回的是++操作后的数据,通常return该数据的引用。原创 2024-06-03 17:00:31 · 626 阅读 · 1 评论
分享