![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
c++
文章平均质量分 95
leonwlwei
这个作者很懒,什么都没留下…
展开
-
C++ typename的起源与用法
侯捷在Effective C++的中文版译序中提到:C++的难学,还在于它提供了四种不同(但相辅相成)的程序设计思维模式:procedural-based, object-based, object-oriented, generics对于较少使用最后一种泛型编程的我来说,程序设计基本上停留在前三种思维模式当中。虽说不得窥见高深又现代的泛型技术,但前三种思维模式已几乎满足我所遇转载 2017-07-24 11:10:30 · 206 阅读 · 0 评论 -
谈谈C++中的swap函数
1,最通用的模板交换函数模式:创建临时对象,调用对象的赋值操作符。template void swap ( T& a, T& b ) { T c(a); a=b; b=c; } 需要构建临时对象,一个拷贝构造,两次赋值操作。2,针对int型优化:void swap(int & __restrict a, int & __restrict b) { a转载 2017-07-24 13:26:39 · 501 阅读 · 0 评论 -
c++11内存模型详解一
关于乱序首先需要明确一个普遍存在,但却未必人人都注意到的事实:程序并不总是按照源码中的顺序被执行的,此谓之乱序,乱序产生的原因可能有好几种:编译器出于优化的目的,在编译阶段将源码的顺序进行交换。程序执行期间,指令流水被 cpu 乱序执行。cache 的分层及刷新策略使得有时候某些写,读操作的顺序被重排。以上乱序现象虽然来源不同,但从源码的角度,对上层应用程序来说,他们的效果转载 2017-09-13 12:10:57 · 474 阅读 · 0 评论 -
编辑距离算法(Levenshtein distance)
概念编辑距离的作用主要是用来比较两个字符串的相似度的基本的定义如下所示:编辑距离,又称Levenshtein距离(莱文斯坦距离也叫做Edit Distance),是指两个字串之间,由一个转成另一个所需的最少编辑操作次数,如果它们的距离越大,说明它们越是不同。许可的编辑操作包括将一个字符替换成另一个字符,插入一个字符,删除一个字符。这个概念是由俄罗斯科学家Vladim转载 2017-09-26 11:42:33 · 1020 阅读 · 1 评论 -
memcpy、memmove、memset、strcpy的区别
memcpy函数原型:函数功能:memcpy函数的功能是从源src所指的内存地址的起始位置开始拷贝n个字节到目标dest所指的内存地址的起始位置中。函数返回值指向dest的指针。不考虑内存重叠[cpp] view plain copy#include #include #include void* Memcpy(void转载 2017-09-21 20:55:40 · 275 阅读 · 0 评论 -
pthread读写锁pthread_rwlock_t
读写锁是用来解决读者写者问题的,读操作可以共享,写操作是排他的,读可以有多个在读,写只有唯一个在写,同时写的时候不允许读。具有强读者同步和强写者同步两种形式强读者同步:当写者没有进行写操作,读者就可以访问;强写者同步:当所有写者都写完之后,才能进行读操作,读者需要最新的信息,一些事实性较高的系统可能会用到该所,比如定票之类的。读写锁的操作:读写锁的初始化:转载 2017-09-22 11:51:29 · 662 阅读 · 0 评论 -
pthread的各种同步机制
简述pthread是POSIX标准的多线程库,UNIX、Linux上广泛使用,windows上也有对应的实现,所有的函数都是pthread打头,也就一百多个函数,不是很复杂。然而多线程编程被普遍认为复杂,主要是因为多线程给程序引入了一定的不可预知性,要控制这些不可预知性,就需要使用各种锁各种同步机制,不同的情况就应该使用不同的锁不同的机制。什么事情一旦放到多线程环境,要考虑的问转载 2017-11-07 14:56:26 · 2120 阅读 · 1 评论