C++&C
JerkWisdom
这个作者很懒,什么都没留下…
展开
-
参数传递的三种方式
参数传递的三种方式:按值传递:在调用函数传递参数时,编译器会自动在栈中创建该参数的拷贝,然后将此拷贝传递给被调用函数,故对被调用函数的参数改变只是改变了拷贝,而无法改变主调函数的参数本身的值。按址传递:在调用函数传递参数时,传递参数的地址,这样指针寻址之后修改的也就是参数本神的值。按别名传递:在调用函数传递参数时,传递参数的别名,这样对别名的修改也是对参数本身的修改。按值传递:原创 2013-03-24 23:02:11 · 1190 阅读 · 0 评论 -
C++并发编程2——为共享数据加锁(四)
本节会阐述保护共享数据的替代方案,很多情况下,使用互斥量并不合适,会带来性能消耗。下文会详细讲解集中通用的场景。原创 2016-09-29 08:37:45 · 1077 阅读 · 0 评论 -
C++并发编程2——为共享数据加锁(三)
死锁的概念略去不说,死锁有可能发生在使用多个互斥量的场景下,也可能存在没有使用互斥量的场景原创 2016-09-29 08:33:10 · 2944 阅读 · 0 评论 -
C++并发编程2——为共享数据加锁(二)
上一节说到,std::mutex并不能完全解决保护数据的问题。存在好几种情况,即使我们已经使用了互斥量,数据还是被破坏了。原创 2016-09-29 08:30:31 · 1591 阅读 · 1 评论 -
C++并发编程2——为保护数据加锁(一)
在应届生面试的时候,很多面试官都会问——“多线程如何共享资源”。在操作系统层面上可以给出若干关键词答案,但是在语言层面,这个问题考虑的就没有那么简单了。原创 2016-09-29 08:26:55 · 6101 阅读 · 0 评论 -
C++并发编程1 - 让我们开始管理多线程
C++11中引入了多线程编程,一般教科书中都没有涉及到这个概念,但是在工作中多线程却又是必不可少的。本文会从最简单的hello world入手,细述如何创建管理线程。原创 2016-09-27 11:51:52 · 5106 阅读 · 0 评论 -
C++并发编程0 - 欢迎来到多线程的世界
博客原文:www.freehacker.comC++11中引入了多线程编程,一般教科书中都没有涉及到这个概念,但是在工作中多线程却又是必不可少的。本文会展示最基本的Hello World, Concurrency程序。原创 2016-09-27 11:48:55 · 777 阅读 · 0 评论 -
Win32多线程编程学习心得
博客原文地址:http://jerkwisdom.github.io/study/thread/thread-Summary/此处博客不再更新。为什么多线程?其实不想写这一点,多线程并不一定是最好的,合适才是最好的。多线程主要的优点是价廉物美,启动快、退出快、与其他线程共享核心对象,很容易实现共产主义的伟大梦想。但是其又有不可预期、测试困难的缺点。使用好多线程,就是要知原创 2016-03-02 20:26:46 · 2808 阅读 · 0 评论 -
有关迷途指针
迷途(stray)指针,也被称为野(wild)指针或悬浮(dangling)指针,是指将delete 用于指针(从而释放它指向的内存),但没有将它设置为空时引发。如果随后你在没有重新赋值的情况下使用该指针,后果将是不可预料的:程序崩溃算你走运。指针指向堆空间,delete之后,只是回收内存。并不改变指针的值。再删除一个指针之后,一定要将其赋值为空。虽然使用空指针是非法的,容易使程序原创 2013-03-26 19:34:26 · 421 阅读 · 0 评论 -
动态规划
终于来到了算法设计思想中最难,也最有趣的这部分,在去年的google笔试中,7道算法设计题有2道动态规划(Dynamic Programming)。看了这么久的算法,这部分也是唯一感觉到了比较难的地方,从这篇文章开始,将花连续的篇幅来讨论一些动态规划的问题。这包括书上介绍过的计算二项式系数,Warshall算法求传递闭包,Floyd算法求完全最短路径,构造最有二叉查找树,背转载 2014-04-24 10:39:36 · 447 阅读 · 0 评论 -
如何设计高效的C++类
一直以来,使用C++面向对象机制,主要是为了其封装和多态特性。往往设计类时,只是为了功能的堆砌,没有考虑的更加深入。之前也阅读过《Effective C++》,只是那时是在学生时代。如今工作了,重新阅读,有不少新的感悟。最关键的是,能从更高的视角去设计程序,之前杂乱无序的点与点,逐渐连接成一条条线。希望后续能够成面、成立体。回到正题:如何设计C++类?原创 2017-09-26 19:48:15 · 3390 阅读 · 1 评论