![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C语言技术
文章平均质量分 71
程序员小六
这个作者很懒,什么都没留下…
展开
-
C++ STL萃取机制
我将从定义、技术实现、设问形式、实例总结来阐述我对于萃取机制的理解。1.定义traits中文意思是特性,它通过提取不同类的共性,使得可以统一处理。2.技术实现traits运用显式模板特殊化将代码中因为类型不同而发生变化的片段提取出来,用统一的接口来包装,并通过traits模板类公开的接口间接访问相应的类。3.设问形式问题1:什么是显式模板特殊化呢?答:模板特殊化又分了一个偏特化(意思就是没有完全的特化)我们来看一段代码,template<class T,class转载 2021-11-26 14:56:02 · 286 阅读 · 0 评论 -
C++ 线程的使用
C++11 之前,C++ 语言没有对并发编程提供语言级别的支持,这使得我们在编写可移植的并发程序时,存在诸多的不便。现在 C++11 中增加了线程以及线程相关的类,很方便地支持了并发编程,使得编写的多线程程序的可移植性得到了很大的提高。C++11 中提供的线程类叫做std::thread,基于这个类创建一个新的线程非常的简单,只需要提供线程函数或者函数对象即可,并且可以同时指定线程函数的参数。我们首先来了解一下这个类提供的一些常用 API:1. 构造函数// ①thread() noexce.转载 2021-11-25 14:14:32 · 292 阅读 · 0 评论 -
现代 C++ 并发编程基础
并行基础std::thread用于创建一个执行的线程实例,所以它是一切并发编程的基础,使用时需要包含<thread>头文件, 它提供了很多基本的线程操作,例如get_id()来获取所创建线程的线程 ID,使用join()来加入一个线程等等,例如: #include <iostream>#include <thread>int main() { std::thread t([](){ std::cout <...转载 2021-11-24 13:31:16 · 93 阅读 · 0 评论 -
C++ 为什么不加入垃圾回收机制?
Java 的爱好者们经常批评 C++ 中没有提供与 Java 类似的垃圾回收(Gabage Collector)机制(这很正常,正如 C++ 的爱好者有时也攻击 Java 没有这个没有那个,或者这个不行那个不够好),导致C++中对动态存储的官吏称为程序员的噩梦,不是吗?你经常听到的是内存遗失(memory leak)和非法指针存取,这一定令你很头疼,而且你又不能抛弃指针带来的灵活性。在本文中,我并不想揭露Java提供的垃圾回收机制的天生缺陷,而是指出了C++中引入垃圾回收的可行性。请读者注意,这转载 2021-11-20 14:22:30 · 933 阅读 · 0 评论 -
C++中this指针的理解和作用
01、C++程序到C程序的翻译想要理解C++语言中的this指针,下面我们做一个举例,我们要先把下面的C++代码转换成C代码:(1)大家知道,C语言中没有类定义class关键词,但是有跟class类似的定义关键词,就是struct结构体定义。m_height变量是Tree类的成员变量,那么我们就可以把Tree类和成员变量翻译成下面的C代码:(2)SetHeight函数是Tree类的成员函数,但是C程序里面没有成员函数这个概念的,所以只能把成员函数翻译成全局的函数:那为什么还.转载 2021-11-19 14:20:27 · 3401 阅读 · 1 评论