编程语言c++
文章平均质量分 72
Belial_2010
小硕,关注计算机视觉、机器视觉、图像处理和Photoshop算法分析,熟悉模式识别和机器学习。
展开
-
atan(y/x)与atan2(y,x)的区别
C/C++标准库中计算正切的函数有两个,一个是atan(y/x),一个是atan2(y, x)。atan2(y, x)是4象限反正切,它的取值不仅取决于正切值y/x,还取决于点 (x, y) 落入哪个象限:当点(x, y) 落入第一象限时,atan2(y, x)的范围是 0 ~ pi/2; 当点(x, y) 落入第二象限时,atan2(y, x)的范围是 pi/2 ~ pi;转载 2015-12-03 15:41:41 · 10780 阅读 · 0 评论 -
Windows的消息机制
一 消息 在传统的C程序中,我们调用fopen函数打开文件。这个库函数最终调用操作系统(提供的函数)来打开文件。而在Windows中,不仅用户程序可以调用系统的API函数,反过来,系统也会调用用户程序,这个调用是通过消息来进行的。 Windows程序设计是一种完全不同于传统的DOS方式的程序设计方法。它是一种事件驱动方式的程序设讨模式,主要是原创 2014-11-29 18:35:38 · 814 阅读 · 0 评论 -
二维条码防伪技术原理及应用简介
近年来,二维码技术得到了广泛的应用,在很多社区和APP中都能见到其身影。二维条码作为一种技术,具有唯一性标志的特性。而且二维码相对于一维码具有储存量大、保密性高、追踪性高、可读性强、纠错性能强、抗损性强、备援性大、成本低、信息可随载体移动等优点,可以对照片、文字、指纹、掌纹、声音、签名等信息进行编码,广泛应用于证件、票据防伪以及商品防伪中。 二维码防伪主要是运用密码学原理,将原创 2013-08-18 09:34:32 · 2694 阅读 · 0 评论 -
WIN32 API多线程编码--参数传递(二)
在多项原创 2014-11-24 17:46:21 · 1178 阅读 · 0 评论 -
使用Visual C++进行串口通信编程
利用Visual C++在windows环境下设计异步串行通信程序可以使用不同的方法。一种方法可以使用windows系统提供的串行口API函数;另一种方法可以直接使用Microsoft公司提供的ActiveX控件MSCOMM.OCX。利用MSCOMM.OCX控件进行串行口程序设计相对比较简单,只要对该控件的属性、事件和方法进行设置和操作,就能完成简单的串行通信功能。而直接使用windows系统提供原创 2014-11-29 09:57:37 · 1916 阅读 · 0 评论 -
MFC多线程编码--用户界面线程(四)
下面以一个实例来介绍用户界面多线程编程。 建立一个基于对话框的工程 MultiThreadTest,在对话框 IDD_MultiThreadTest_DIALOG 中加入一个按钮 IDC_UI_THREAD,标题为“用户界面线程”。右击工程并选中“New Class…”为工程添加基类为 CWinThread 派生线程类 CUIThread。给工程添加新对话框 IDD_UITHRE原创 2014-11-26 09:37:20 · 1135 阅读 · 0 评论 -
全文检索系统与Lucene简介
全文检索系统与Lucene简介转载 2014-10-19 16:14:32 · 694 阅读 · 0 评论 -
clucene2.3.3.4编译详解
最近总是有人给我留言,说Clucene编译不过去,大概是因为我以前发的一篇笔记的影响吧http://blog.csdn.net/p569354158/article/details/6407456#reply这不,今天又有人问了,所以抽点时间,写一下我编译的过程,希望能帮助大家。一、首先在sourceforge上下载clucene-core-2.3.3.4 ,在目前这是最新转载 2014-10-19 16:08:10 · 683 阅读 · 0 评论 -
多线程编程--多线程间通信(五)
一般而言 ,应用程序中的一个次要线程总是为主线程执行特定的任务,这样,主线程和次要线程间必定有一个信息传递的渠道,也就是主线程和次要线程间要进行通信。这种线程间的通信不但是难以避免的,而且在多线程编程中也是复杂和频繁的,下面将进行说明。 使用全局变量进行通信 由于属于同一个进程的各个线程共享操作系统分配该进程的资源,故解决线程间通信最简单的一种方法是使用全局变原创 2014-11-26 10:07:44 · 855 阅读 · 0 评论 -
Win32 API对多线程编程的支持--显示时间(一)
Win32 提供了一系列的 API 函数来完成线程的创建、挂起、恢复、终结以及通信等工作。下面将选取其中的一些重要函数进行说明。该函数在其调用进程的进程空间里创建一个新的线程,并返回已建线程的句柄,其中各参数说明如下:lpThreadAttributes:指向一个 SECURITY_ATTRIBUTES 结构的指针,该结构决定了线程的安全属性,一般置为 NULL;dwS原创 2014-11-24 17:12:39 · 760 阅读 · 0 评论 -
多线程同步--(信号量CSemaphore)(八)
当需要一个计数器来限制可以使用某个线程的数目时,可以使用 “信号量 ”对象。CSemaphore 类的对象保存了对当前访问某一指定资源的线程的计数值,该计数值是当前还可以使用该资源的线程的数目。如果这个计数达到了零,则所有对这个 CSemaphore 类对象所控制的资源的访问尝试都被放入到一个队列中等待,直到超时或计数值不为零时为止。 一个线申请到访问被保护的资源时,计数值减 1;一个线程完成了对原创 2014-11-28 15:45:50 · 820 阅读 · 0 评论 -
C++获取本地时间
std::string getTime() { char buffer[40]; struct tm *TM; time_t t; time(&t); TM=localtime(&t); strftime(buffer,40,"%Y-%m-%d %H:%M:%S",TM); std::string result(buffer); return result;}原创 2014-11-24 16:36:15 · 1031 阅读 · 0 评论 -
多线程编程——线程的同步(六)
虽然多线程能给我们带来好处,但是也有不少问题需要解决。例如,对于像磁盘驱动器这样独占性系统资源,由于线程可以执行进程的任何代码段,且线程的运行是由系统调度自动完成的,具有一定的不确定性,因此就有可能出现两个线程同时对磁盘驱动器进行操作,从而出现操作错误;又例如,对于银行系统的计算机来说,可能使用一个线程来更新其用户数据库,而用另外一个线程来读取数据库以响应储户的需要,极有可能读数据库的线程读取的是原创 2014-11-28 15:05:19 · 740 阅读 · 0 评论 -
Numerical learning library
链接:https://code.google.com/p/nll/NLL is a multi-platform open source project entirely written in C++. Its goal is to propose generic and efficient algorithms for machine learning and more specific转载 2015-12-01 14:11:04 · 3560 阅读 · 0 评论 -
openv计时类TickMeter
class CV_EXPORTS TickMeter { public: TickMeter(); void start(); void stop(); int64 getTimeTicks() const; double getTimeMicro() const; double ge原创 2015-11-25 10:55:47 · 5906 阅读 · 0 评论 -
wstring转string和string转wstring
//=================================================================================// Narrow2Wide()//=================================================================================wstring Narrow2原创 2015-09-11 11:07:49 · 3265 阅读 · 0 评论 -
msvcprt.lib(MSVCP90.dll) : error LNK2005:已经在libcpmtd.lib(xmutex.obj) 中定义
很久没有写程式设计入门知识的相关文章了,这篇文章要来谈谈程式库 (Library) 连结,以及关于 MSVC 与 CRT 之间的种种恩怨情仇。如果你使用的作业系统是 Linux、Mac 或其他非 Windows 平台,你可以忽略这篇文章;如果你使用的作业系统是 Windows 平台,但没有用 Microsoft Visual Studio C++(以下简称为 MSVC)软体撰写 C++ 程转载 2015-08-21 11:22:45 · 1581 阅读 · 0 评论 -
Jni中C++和Java的参数传递
如何使用JNI的一些基本方法和过程在网上多如牛毛,如果你对Jni不甚了解,不知道Jni是做什么的,如何建立一个基本的jni程序,或许可以参考下面下面这些文章:Java通过JNI调用C++程序 这些资料的例子中,大多数只是输入一些简单的参数,获取没有参数。而在实际的使用过程中,往往需要对参数进行处理转换。才可以被C/C++程序识别。比如我们在C++中有一个结构(Struct)DiskInf转载 2015-07-10 09:37:25 · 1051 阅读 · 0 评论 -
Java通过JNI调用C++程序
JNI是Java Native Interface的缩写,中文为JAVA本地调用。使用JNI可以很方便的用我们的Java程序调用C/C++程序。很多时候,某些功能用Java无法实现,比如说涉及到底层驱动的一些功能,这时候我们就可以利用JNI来调用C或者C++程序来实现,这就是JNI的强大之处。但是JNI也有它的缺点,使用java与本地已编译的代码交互,通常会丧失平台可移植性。 下面是一个转载 2015-07-10 08:26:42 · 769 阅读 · 0 评论 -
值得推荐的C/C++框架和库 (真的很强大)
值得学习的C语言开源项目- 1. WebbenchWebbench是一个在linux下使用的非常简单的网站压测工具。它使用fork()模拟多个客户端同时访问我们设定的URL,测试网站在压力下工作的性能,最多可以模拟3万个并发连接去测试网站的负载能力。Webbench使用C语言编写, 代码实在太简洁,源码加起来不到600行。下载链接:http://home.tiscali.cz/转载 2015-05-24 20:21:29 · 2942 阅读 · 0 评论 -
C++常用计算几何算法
从网上转来的几何算法,对点线的基本算法,有兴趣的可以学习下。#include#include#include#include#define max(a,b) (((a)>(b))?(a):(b))#define min(a,b) (((a)>(b))?(b):(a))#define sign(x) ((x)>eps?1:((x)<-eps?(-1):(0))) using nam转载 2015-06-29 10:24:57 · 3489 阅读 · 0 评论 -
C++操作SQLite3
SQLite 数据库,是一个非常轻量级自包含(lightweight and self-contained)的DBMS,它可移植性好,很容易使用,很小,高效而且可靠。SQLite嵌入到使用它的应用程序中,它们共用相同的进程空间,而不是单独的一个进程。从外部看,它并不像一个RDBMS,但在进程内部,它却是完整的,自包含的数据库引擎。 嵌入式数据库的一大好处就是在你的程序内部原创 2015-04-24 09:50:23 · 2619 阅读 · 2 评论 -
Intel Thread Building Blocks (TBB) 的介绍
Intel Thread Building Blocks (TBB) 的介绍转载 2015-03-26 16:32:11 · 1054 阅读 · 0 评论 -
intel Threading Building Blocks 入门 (基本算法)
intel Threading Building Blocks 入门 (基本算法)转载 2015-03-26 16:29:58 · 1283 阅读 · 0 评论 -
C++ 的一些免费库
//整理 by RobinKin (王亮)Linear AlgebraMTL, the Matrix Template Library. Dense and sparse matrices and vectors; banded, symmetric, triangular matrices; basic algorithms. C++. 矩阵模转载 2014-09-04 16:38:54 · 1892 阅读 · 0 评论 -
算法分析-汉诺塔问题(一)
汉诺塔:汉诺塔(又称河内塔)问题是源于印度一个古老传说的益智玩具。大梵天创造世界的时候做了三根金刚石柱子,在一根柱子上从下往上按照大小顺序摞着64片黄金圆盘。大梵天命令婆罗门把圆盘从下面开始按大小顺序重新摆放在另一根柱子上。并且规定,在小圆盘上不能放大圆盘,在三根柱子之间一次只能移动一个圆盘。原创 2014-10-23 14:04:31 · 2780 阅读 · 1 评论 -
最强大脑魔方墙模拟程序(工具)
根据《最强大脑》节目里的魔方墙开发的一个魔方墙模拟程序,可以自由设置魔方墙的大小、任意改变魔方墙色块的颜色。原创 2015-01-10 18:41:40 · 17210 阅读 · 1 评论 -
多线程同步--(事件机制CEvent)(七)
CEvent 类提供了对事件的支持。事件是一个允许一个线程在某种情况发生时,唤醒另外一个线程的同步对象。例如在某些网络应用程序中,一个线程(记为 A)负责监听通讯端口,另外一个线程(记为 B)负责更新用户数据。通过使用 CEvent 类,线程 A 可以通知线程 B 何时更新用户数据。每一个 CEvent 对象可以有两种状态:有信号状态和无信号状态。线程监视位于其中的 CEvent 类对象的状态,并原创 2014-11-28 15:17:18 · 1778 阅读 · 0 评论 -
MFC多线程编程(三)
MFC 中有两类线程,分别称之为工作者线程和用户界面线程。二者的主要区别在于工作者线程没有消息循环,而用户界面线程有自己的消息队列和消息循环。工作者线程没有消息机制,通常用来执行后台计算和维护任务,如冗长的计算过程, 打印机的后台打印等。用户界面线程一般用于处理独立于其他线程执行之外的用户输入,响应用户及系统所产生的事件和消息等。但对于 Win32 的 API 编程而言,这两种线程是没有区别的,它原创 2014-11-25 12:52:57 · 709 阅读 · 0 评论 -
函数指针和指针函数
1、函数指针原创 2014-11-14 11:30:40 · 699 阅读 · 0 评论 -
深入理解C++中的volatile关键字
就像大家更熟悉的const一样,volatile是一个类型修饰符(type specifier)。它是被设计用来修饰被不同线程访问和修改的变量。如果没有volatile,基本上会导致这样的结果:要么无法编写多线程程序,要么编译器失去大量优化的机会。原创 2014-08-07 11:24:59 · 897 阅读 · 0 评论 -
深入理解C++中的mutable关键字
深入理解C++中的mutable关键字kezunhai@gmail.comhttp://blog.csdn.net/kezunhai 关键字mutable是C++中一个不常用的关键字,它的中文意思是“可变的,易变的”,跟constant(既C++中的const)是反义词。在C++中,mutable也是为了突破const的限制而设置的。被mutable修饰的原创 2014-08-07 10:23:29 · 1279 阅读 · 0 评论 -
C++四种强制类型转换运算符
在编写C++程序时,会遇到强制类型转换原创 2014-08-05 19:18:32 · 1668 阅读 · 0 评论 -
c语言中static 函数和普通函数的区别
在全局变量之前加上关键字static,全局变量就被定义成为一个全局静态变量。 1)内存中的位置:静态存储区(静态存储区在整个程序运行期间都存在) 2)初始化:未经初始化的全局静态变量会被程序自动初始化为0(自动对象的值是任意的,除非他被显示初始化) 3)作用域:全局静态变量在声明他的文件之外是不可见的。准确地讲从定义之处开始到文件结尾。好处:定义全局静态变量的好处转载 2014-07-31 14:27:58 · 920 阅读 · 0 评论 -
Windows中的字符编码
文Windows中的字符编码kezunhai@gmail.comhttp://blog.csdn.net/kezunhai 正文这里开始写证明的内容原创 2014-07-29 17:27:57 · 947 阅读 · 0 评论 -
C++之const关键字讲解
这篇文章来自网上,没查去处,如有知情,请告之,必改之。 看到const 关键字,C++程序员首先想到的可能是const 常量。这可不是良好的条件反射。如果只知道用const 定义常量,那么相当于把火药仅用于制作鞭炮。const 更大的魅力是它可以修饰函数的参数、返回值,甚至函数的定义体。 const 是constant 的缩写,“恒定不变”的意思。被const转载 2013-07-19 23:00:58 · 1279 阅读 · 0 评论 -
const char*与char*作为函数参数使用详解
本文主要讲解和分析const char*与char*直接的差别,并通过对ANSI C标准的引用,来说明这两者的相容性。原创 2013-08-31 22:40:53 · 10325 阅读 · 0 评论 -
CSliderCtrl控件使用及滑块刻度提示
在程序开发中,常常会用到滑块控件,滑块控件,也称轨道条控件,而且最好是有刻度的显示,即使刻度不显示,也要能够在拖到滑块的时候显示刻度信息。在网上查了相关资料后,发现都没满足要求,一阵摸索后,才发现其实很简单,只需要设置“ToolTips”的属性为“True”即可,设置界面如下: CSliderCtrl的函数简介CSliderCtrl::CSliderCtrl 构造函数。CSlide原创 2013-08-29 18:15:17 · 4782 阅读 · 0 评论 -
DES加密算法的原理
DES(Data Encryption Standard)又叫数据加密标准,是1973年5月15日美国国家标准局(现在是美国标准技术研究所,即NIST)在联邦记录中公开征集密码体制时出现的。DES由IBM开发,它是对早期被称为Lucifer体制的改进。DES在1975年3月17日首次在联邦记录中公布,在经过大量的公开讨论后,1977年2月15日DES被采纳为“非密级”应用的一个标准。最初预期DES原创 2013-08-25 12:21:59 · 1586 阅读 · 0 评论 -
C++中几个预定义变量的介绍
在C++编程中,有几个预定义变量,这几个预定义变量在使用的时候很方便。比如,在C++中中为了获取时间,常常需要借用C语言的借口time或者CTime类,然后如果是简单的获取时间,通过这几个预定的变量可以很方便的得到。C++预定的几个变量为: 1)__LINE__ 和 __FILE__ 变量表示正在处理的当前行和当前文件。__FILE__ 这个变量对于要获取当前程序的路径很有用,可以简原创 2013-07-19 21:00:55 · 1208 阅读 · 0 评论