Twinkle

所谓核心竞争力,永远是自身的实力!

【C++】变量的存储位置

1、首先,讲下 “堆 heap” 和 “栈 stack” 的区别:     一个由 c/c++编译过的程序占用的内存分为一下几个部分     (1)、栈区 stack :由编译器自动分配释放,存放函数的参数值,局部变量的值等。这个栈的操作方式类似于数据结构中的栈。     (2)、堆区 he...

2019-05-07 10:20:29

阅读数 346

评论数 0

【C++ 并发与多线程】1 std::thread id join

类thread表示单个执行线程。线程允许多个函数并发执行。紧接着关联的线程对象构造,线程开始执行(为任何 OS 调度延迟悬挂),始于作为构造函数参数提供的顶层函数。忽略顶层函数的返回值,而且若它以抛异常终止,则调用std::terminate。顶层函数可以通过std::promise或修改共享变量...

2019-05-06 09:48:50

阅读数 32

评论数 0

【C++ 并发与多线程】std::thread类-为共享数据加锁 3

如果某个想法是你唯一的想法,再也没有比这个更危险的事情了。 本节会阐述保护共享数据的替代方案,很多情况下,使用互斥量并不合适,会带来性能消耗。下文会详细讲解集中通用的场景。 保护共享数据的初始化过程 为了防止共享数据初始化时数据被破坏,C++提供了std::once_flag和std::c...

2019-05-05 10:03:47

阅读数 432

评论数 0

【C++ 并发与多线程】std::thread类-为共享数据加锁 2

正交——消除无关事务之间的影响,力求高内聚低耦合。 死锁的概念略去不说,死锁有可能发生在使用多个互斥量的场景下,也可能存在没有使用互斥量的场景: 两个线程都在等待对方释放互斥量 两个线程都调用了对方的join()函数 为了解决两个线程都在等待对方释放互斥量导致的死锁问题,C++11提供了若...

2019-05-05 09:59:34

阅读数 442

评论数 0

【C++ 并发与多线程】std::thread类-为共享数据加锁 1

让复用变得容易,拒绝重复。 上一节说到,std::mutex并不能完全解决保护数据的问题。存在好几种情况,即使我们已经使用了互斥量,数据还是被破坏了。 将被保护数据暴露到互斥量作用域之外 被保护数据的访问接口本身就存在竞态条件(条件竞争) 不要暴露你的数据 来看下面例子: stru...

2019-05-05 09:35:59

阅读数 454

评论数 0

【C++】运算符重载 三 (总结)

前接文章: 【C++】运算符重载 一 【C++】运算符重载 二 (实例) c++的一大特性就是重载(overload),通过重载可以把功能相似的几个函数合为一个,使得程序更加简洁、高效。在c++中不止函数可以重载,运算符也可以重载。由于一般数据类型间的运算符没有重载的必要,所以运算符重载主要...

2019-04-30 18:17:43

阅读数 48

评论数 0

【C++】运算符重载 二 (实例)

前接文章:【C++】运算符重载 一 值得注意的是: 1、运算重载符不可以改变语法结构。 2、运算重载符不可以改变操作数的个数。 3、运算重载符不可以改变优先级。 4、运算重载符不可以改变结合性。 类重载、覆盖、重定义之间的区别: 重载指的是函数具有的不同的参数列表,而函数名相同的函...

2019-04-30 17:15:11

阅读数 52

评论数 0

【C++】运算符重载 一

C++ 允许在同一作用域中的某个函数和运算符指定多个定义,分别称为函数重载和运算符重载。重载声明是指一个与之前已经在该作用域内声明过的函数或方法具有相同名称的声明,但是它们的参数列表和定义(实现)不相同。当您调用一个重载函数或重载运算符时,编译器通过把您所使用的参数类型与定义中的参数类型进行比较,...

2019-04-30 17:06:02

阅读数 172

评论数 0

【C++ 并发与多线程】std::thread类-保护数据加锁

在应届生面试的时候,很多面试官都会问——“多线程如何共享资源”。在操作系统层面上可以给出若干关键词答案,但是在语言层面,这个问题考虑的就没有那么简单了。同时,很多人会将多线程数据共享和线程同步混淆。有关线程同步,我们会在接下来的章节里着重阐述。本文主要聚焦于保护共享数据,首先从加锁入手,进而扩展到...

2019-04-30 16:16:17

阅读数 474

评论数 0

【C++ 并发与多线程】std::thread类-多线程传参

线程传参 正常的线程传参是很简单的,但是需要记住下面一点:默认情况下,即使我们线程函数的参数是引用类型,参数会先被拷贝到线程空间,然后被线程执行体访问。上面的线程空间为线程能够访问的内部内存。我们来看下面的例子: void f(int i,std::string const&...

2019-04-29 17:05:46

阅读数 55

评论数 0

【C++ 并发与多线程】std::thread类-多线程的基本用法

什么叫并发 concurrency? 一遍走路一边说话;你打球我游泳 单核计算机上的并发是个假象,其实只是任务切换(task switching)需要上下文切换 多处理器或一个处理器上有多个核上的并发才是自然的并发,叫硬件并发 并发种类: 1,多进程并发 这些进程间可通过正常的进程通信渠...

2019-04-29 16:48:56

阅读数 83

评论数 0

【C++】Lambda表达式

C++11的一大亮点就是引入了Lambda表达式。利用Lambda表达式,可以方便的定义和创建匿名函数。对于C++这门语言来说来说,“Lambda表达式”或“匿名函数”这些概念听起来好像很深奥,但很多高级语言在很早以前就已经提供了Lambda表达式的功能,如C#,Python等。今天,我们就来简单...

2019-04-29 15:53:09

阅读数 163

评论数 0

【C++】获取某一文件下所有的文件名(地址)

#include <iostream> #include <fstream> #include <istream> #include <ostr...

2019-03-12 10:36:21

阅读数 278

评论数 0

【Word使用】在第三页新插入页码

    许多应届毕业生在排版毕业论文时候,都会按要求设置页码,第一页是封面,第二页是目录,那么正文内容就要从第三页正式开始了。按照正规设置方式,那么页码此时应该是第三页。但是按照论文格式规定,页码应该是从正文页初始的。 所以,在这里易老师就来教下大家Word页码如何从第三页开始,或者说页码如何从...

2019-02-21 16:34:13

阅读数 125

评论数 0

【深度学习】训练集、开发集和测试集

这三者是在进行一个机器学习项目中非常重要的内容。它们的确定往往决定了这个项目的走向。错误的训练集、开发集和测试集的划分很可能会让一个团队浪费数月时间。 training set:顾名思义,是用来训练模型的。因此它占了所有数据的绝大部分。 development set:用来对训练集训练出来的模...

2018-11-27 10:59:25

阅读数 1712

评论数 0

【深度学习】入门的25个概念

神经网络基础 1)神经元(Neuron)——就像形成我们大脑基本元素的神经元一样,神经元形成神经网络的基本结构。想象一下,当我们得到新信息时我们该怎么做。当我们获取信息时,我们一般会处理它,然后生成一个输出。类似地,在神经网络的情况下,神经元接收输入,处理它并产生输出,而这个输出被发送到其他神经元...

2018-11-27 10:14:41

阅读数 1165

评论数 1

【Python】SimPy的使用示例

使用SimPY进行离散事件仿真 SimPY是一个Python下的第三方库,可以方便的进行离散事件的仿真。仿真速度比较快。下面记录一下我的一点心得,不保证完全正确,供参考。 安装 $ pip install -U simpy pycharm可以再File | Settings | Proje...

2018-11-26 17:21:31

阅读数 863

评论数 0

【深度学习】深度学习中IU、IoU(Intersection over Union)的概念理解以及python程序实现

IoU(Intersection over Union) Intersection over Union是一种测量在特定数据集中检测相应物体准确度的一个标准。我们可以在很多物体检测挑战中,例如PASCAL VOC challenge中看多很多使用该标准的做法。 通常我们在 HOG + Lin...

2018-11-24 11:16:08

阅读数 592

评论数 0

【OpenCV】噪声的添加和过滤

1. 简介 下面简单介绍两种图像噪声,即椒盐噪声和高斯噪声。 (1) 椒盐噪声  椒盐噪声也称脉冲噪声,它是一种随机出现的白点或者黑点,可能是亮的区域有黑色像素或是在暗的区域有白色像素(或是两者皆有)。  图像模拟添加椒盐噪声是通过:随机获取像素点,并设置为高亮度点和低亮度点来实现的。 (2)...

2018-11-21 16:26:08

阅读数 1209

评论数 0

【python】from __future__ import absolute_import/division/print_function

from __future__ import absolute_import 关于这句from __future__ import absolute_import的作用:  直观地看就是说”加入绝对引入这个新特性”。说到绝对引入,当然就会想到相对引入。那么什么是相对引入呢?比如说,你的包结构是...

2018-11-16 16:50:11

阅读数 427

评论数 0

提示
确定要删除当前文章?
取消 删除
关闭
关闭