随笔分类 -  C++

摘要:线程安全的 class 应当满足的条件 多个线程同时访问时,其表现出正确的行为 无论操作系统如何调度这些线程,无论这些线程的执行顺序如何交织 调用端代码无须额外的同步或其他协调动作 对象创建的线程安全 对象创建要做到线程安全,唯一的要求就是在构造期间不要泄露 this 指针: 不要在构造函数中注册任 阅读全文 »
posted @ 2022-04-11 18:42 刘-皇叔 阅读(279) 评论(0) 推荐(0) 编辑
摘要:new 和 delete 的执行过程 new 的执行过程 通过 operator new 申请内存 调用构造函数(简单类型忽略此步) 返回内存指针 delete 的执行过程 调用析构函数(简单类型忽略此步) 释放内存 using namespace std; class T { public: T( 阅读全文 »
posted @ 2021-05-11 18:39 刘-皇叔 阅读(165) 评论(0) 推荐(0) 编辑
摘要:二维 vector 定义二维数组有如下几种方法,例如定义 3x3 的 vector: 第一种方法 vector<vector<int>> vec; vec.resize(3); for (int i = 0; i < vec.size(); i++) vec[i].resize(3); 第二种方法 阅读全文 »
posted @ 2020-08-13 19:59 刘-皇叔 阅读(197) 评论(0) 推荐(0) 编辑
摘要:std::iterator std::iterator 是一个模板类,其声明为: template< class Category, class T, class Distance = std::ptrdiff_t, class Pointer = T*, class Reference = T& 阅读全文 »
posted @ 2020-08-09 17:34 刘-皇叔 阅读(1672) 评论(0) 推荐(0) 编辑
摘要:例如下面的代码: typedef typename std::vector<T>::size_type size_type; 查看 vector 源码可以看到: template <class T,class Alloc=alloc> class vector{ public: //... type 阅读全文 »
posted @ 2020-08-09 17:08 刘-皇叔 阅读(279) 评论(0) 推荐(0) 编辑
摘要:有时候,进行类设计时,会发现某个类的对象是独一无二的,没有完全相同的对象,也就是对该类对象做副本没有任何意义。 因此,需要限制编译器自动生动的拷贝构造函数和赋值函数,DISALLOW_COPY_AND_ASSIGN 可以起到这个作用: // A macro to disallow the copy 阅读全文 »
posted @ 2020-08-09 16:30 刘-皇叔 阅读(785) 评论(0) 推荐(0) 编辑
摘要:数组的智能指针的限制 unique_ptr 的数组智能指针,没有* 和 -> 操作,但支持下标操作[]。 shared_ptr 的数组智能指针,有 * 和 -> 操作,但不支持下标操作[],只能通过 get() 去访问数组的元素。 shared_ptr 的数组智能指针,必须要自定义deleter。 阅读全文 »
posted @ 2020-04-15 11:41 刘-皇叔 阅读(1893) 评论(0) 推荐(0) 编辑
摘要:创建线程 每个程序至少有一个执行 main 函数的线程,其他线程也有自己的入口函数,两者会同时运行。 #include <thread> #include <iostream> void f() { std::cout << "hello world"<<std::endl; } int main( 阅读全文 »
posted @ 2020-04-04 16:16 刘-皇叔 阅读(704) 评论(0) 推荐(0) 编辑
摘要:什么是并发 计算机术语中的"并发",指的是在单个系统里同时执行多个独立的活动,而不是顺序的一个接一个的执行。 对于单核CPU来说,在某个时刻只可能处理一个任务,但它却不是完全执行完一个任务再执行一个下一任务,而是一直在任务间切换,每个任务完成一点就去执行下一个任务,看起来就像任务在并行发生,虽然不是 阅读全文 »
posted @ 2020-04-04 09:07 刘-皇叔 阅读(917) 评论(0) 推荐(0) 编辑
摘要:C++'s most vexing parse 是 Scott Meyers 在其名著《Effective STL》中创造的一个术语。Scott 用这个术语来形容 C++ 标准对于 declaration 语句的消歧义(ambiguity resolution)约定与常人的认知相悖。 形如 Type 阅读全文 »
posted @ 2019-12-31 10:10 刘-皇叔 阅读(272) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示