上一页 1 2 3 4 5 6 ··· 9 下一页

2023年12月18日

万字长文全面详解现代C++智能指针:原理、应用和陷阱

摘要: 现代C++智能指针详解:原理、应用和陷阱 智能指针是C++11引入的新特性。本篇文章详细介绍了C++智能指针的原理、应用与陷阱,通过丰富的代码实例介绍了三种智能指针:std::unique_ptr、std::shared_ptr和std::weak_ptr的原理、使用方法和适用场景,还介绍了智能指针 阅读全文

posted @ 2023-12-18 14:38 七昂的技术之旅 阅读(1918) 评论(0) 推荐(2) 编辑

2023年12月16日

C++ 高效使用智能指针的8个建议

摘要: C++ 高效使用智能指针的8个建议 前言:智能指针是C++11提供的新特性,它基于RAII实现,可以自动管理内存资源,避免内存泄漏的发生,但是智能指针也并不是万能的,如果不正确使用智能指针,也会导致内存泄漏的发生,因此,我们需要了解如何高效使用智能指针避免一些可能的陷阱。本文总结了8个关于智能指针的 阅读全文

posted @ 2023-12-16 13:40 七昂的技术之旅 阅读(513) 评论(0) 推荐(1) 编辑

C++: 智能指针的自定义删除器 `Custom Deleter` 有什么用?

摘要: C++11智能指针std::shared_ptr和std::unique_ptr都支持自定义删除器,本文将介绍自定义删除器的使用场景和使用方法。智能指针模板参数的第二个类型是删除器,一般是一个函数指针类型或者是一个函数对象类型。通常情况下,删除器的类型是std::default_delete<T>, 阅读全文

posted @ 2023-12-16 13:40 七昂的技术之旅 阅读(479) 评论(0) 推荐(0) 编辑

2023年11月22日

C++ shared_ptr是线程安全的吗?

摘要: 导读:C++面试中有时会有这样一个问题,shared_ptr是线程安全的吗?对此问题,我们需要从三个并发场景进行考虑,拷贝shared_ptr的安全性、对shared_ptr赋值的安全性和读写shared_ptr指向内存区域的安全性。 对于以上问题,首先给出以下结论: 如果多个线程同时拷贝同一个sh 阅读全文

posted @ 2023-11-22 00:41 七昂的技术之旅 阅读(1125) 评论(0) 推荐(1) 编辑

2023年11月20日

C++ weak_ptr除了解决循环引用还能做什么?

摘要: C++: weak_ptr到底有什么用? 很多人对std::weak_ptr的认识只是不增加std::shared_ptr的引用计数,可以用来解决std::shared_ptr可能造成的循环引用问题。但是,实际对它的认识还是不够深刻,本文将从几个实际应用场景讲解,深入了解这种智能指针。比如,你是否知 阅读全文

posted @ 2023-11-20 00:35 七昂的技术之旅 阅读(635) 评论(0) 推荐(0) 编辑

2023年10月29日

C++ | 每一个C++程序员都应该知道的RAII

摘要: 导读:RAII是C++中一种管理资源、避免资源泄漏的惯用法,利用栈的特点来实现。本文较为详细介绍了RAII的原理、使用方法和优点,并且通过实例讲解了RAII在C++ STL中的应用,如智能指针和互斥锁等,在最后进行了编程实践。本文适合对C++编程有一定了解的开发者阅读。 1. 什么是RAII RAI 阅读全文

posted @ 2023-10-29 14:21 七昂的技术之旅 阅读(158) 评论(0) 推荐(0) 编辑

2023年10月7日

Effective C++——Item33: 避免隐藏继承的名字

摘要: Effective C++——Item33: 避免隐藏继承的名字 一、从原理理解隐藏 从变量作用域看隐藏 全局变量x和局部变量x的类型是不同的,但C++的隐藏规则:只隐藏名字(hiding names)。 int x; // global variable void someFunc() { dou 阅读全文

posted @ 2023-10-07 22:06 七昂的技术之旅 阅读(18) 评论(0) 推荐(0) 编辑

2023年7月9日

【设计模式】策略模式与简单工厂结合

摘要: # 策略模式 > 大话设计模式 ## 什么是策略模式(Strategy)? 它定义了算法家族,分别封装起来,让它们之间可以互相替换,此模式让算法的变化,不会影响到使用算法的客户。 策略模式是一种定义一系列算法的方法,从概念上来看,所有这些算法完成的都是相同的工作,只是实现不同,它可以以相同的方式调用 阅读全文

posted @ 2023-07-09 15:25 七昂的技术之旅 阅读(87) 评论(0) 推荐(0) 编辑

2023年6月28日

为什么在 C++ 中,类的静态成员变量需要在源文件中进行定义?

摘要: # 为什么在 C++ 中,类的静态成员变量需要在源文件中进行定义? 类的静态成员变量需要在源文件中进行定义,以便在链接阶段能够正确地分配内存并为其分配地址。 当你在类的头文件中声明一个静态成员变量时,这只是告诉编译器该变量存在,并将在某处定义。这是因为头文件通常被包含在多个源文件中,如果在头文件中进 阅读全文

posted @ 2023-06-28 19:25 七昂的技术之旅 阅读(73) 评论(0) 推荐(0) 编辑

2023年4月13日

C++性能优化——能用array就不要用unordered_map作为查询表

摘要: unordered_map需要哈希值计算和表查询的开销,当key值为整数且连续,直接用数组作为查询表具有更高的效率。 #include <iostream> #include <chrono> #include <unordered_map> using namespace std; long lo 阅读全文

posted @ 2023-04-13 10:35 七昂的技术之旅 阅读(169) 评论(0) 推荐(0) 编辑

上一页 1 2 3 4 5 6 ··· 9 下一页

导航