C++ 知识库
文章平均质量分 58
wizard_fire
这个作者很懒,什么都没留下…
展开
-
左值引用&右值引用
左值可以取地址,例如位于等号左边 int a = 6 中的 a例如变量,左值在表达式结束后依然存在右值不能取地址,例如位于等号右边 int a = 6 中的 6例如字面量或临时变量,通常表示一个即将被销毁的值左值引用能指向左值,不能指向右值例如 int &ref_a = a,而不能是 int &ref_a = 6;因为右值没有地址,没办法被修改,而引用是变量的别名,实质上是一个变量,变量是有地址的一个有地址,一个没地址,所以左值引用无法指向右值。原创 2024-10-15 22:16:18 · 424 阅读 · 0 评论 -
共享指针 shared_ptr
共享所管理的指针的内容的传播和释放,例如解决多线程使用同一个对象时的析构问题使用场景示例:对于同一帧视频数据业务A要将数据保存在本地业务B要将数据上传到云端这时候如果将数据都深拷贝一份再传入各个业务线程,就会带来很大的资源浪费,此时就可以使用共享指针来管理指向这些数据的指针;前提是要管理的这些数据,是只读的,如果要修改内容,就要考虑采用加锁等手段来避免产生数据安全的问题。原创 2024-10-14 16:49:01 · 353 阅读 · 0 评论 -
C++ const关键字
当成员函数用const修饰之后,相当于const修饰了this指针,那就变成了一个常量指针,不允许修改其指向的值;成员函数中其实隐藏了一个形参this指针,在函数被调用的时候,编译器会把对象的地址作为实参传递给this形参;即用const修饰之后的成员函数,只能访问成员变量,而不能做任何修改;const 在指针左边,左定值,即不能通过指针修改该值。const 在指针右边,右定向,即不能改变指针的指向。this指针本身就是一个指针常量,不允许修改其指向;不能通过引用修改该值。原创 2024-09-28 22:51:18 · 259 阅读 · 0 评论 -
C++ 排序算法
2. 分区步骤:选取基准点和前后指针后,遍历区间,先从右往左,找到第一个比基准点小的元素, 左指针=右指针的值;然后从左往右,找到第一个比基准点大的元素,右指针=左指针的值,重复直到两指针相遇,相遇点=基准点的值;应用在快排(默认从小到大排序)上,就是取一基准点,遍历数组,将比基准点大的放在基准点右边,比基准点小的放在基准点左边;然后再以同样的思路,在基准点左边序列中,重新取一基准点,重复上述流程,直到只需要比较一个元素和基准点的大小,即为有序。原创 2024-09-26 13:30:51 · 332 阅读 · 0 评论