C/C++
CAPTIAN船长
19910825
展开
-
Python调用C/C++
Python调用C/C++方法:Python 标准库自带的 ctypes 模块python提供的API调用Cboost工具进行封装Swig工具ctypes 模块ctypes是Python标准库提供的调用动态链接库的模块,相对1)2)来说不需要对源代码进行破坏,只需要对相应的c++数据类型进行python的转换。API调用C主要方法是在c++文件中借助Python提供的头文件p...原创 2018-12-13 18:34:52 · 1252 阅读 · 0 评论 -
C++异常处理类与自定义异常处理类
例1:自定义一个继承自excepton的异常类myExceptionC++标准中,定义在中的任何异常类都派生自exception Class,本例也只是简单地由exception继承,在try段抛出一个异常并捕捉。代码如下:/*++ test.cpp version:1.0 decript:define a exception class named myException原创 2015-01-29 16:44:15 · 19718 阅读 · 1 评论 -
事件对象(CreateEvent)、互斥对象(CreateMutex)、关键代码段(InitializeCriticalSection)
事件对象(CreateEvent)、互斥对象(CreateMutex)、关键代码段(InitializeCriticalSection)原创 2015-01-29 11:47:41 · 2518 阅读 · 0 评论 -
Windows共享内存以及相关函数的使用
程序与程序之间、进程与进程之间、线程与线程之间进行数据交互与共享的方法是决定一个程序运行效率与速度的关键。方法1:共享内存函数 CreateFileMappingHANDLE CreateFileMapping( HANDLE hFile, //物理文件句柄 LPSECURITY_ATTRIBUTES lpAttributes,原创 2015-01-29 10:49:03 · 3826 阅读 · 0 评论 -
C++标准exception类层次图
异常,让一个函数可以在发现自己无法处理的错误时抛出一个异常,希望它的调用者可以直接或者间接处理这个问题。而传统错误处理技术,检查到一个局部无法处理的问题时:1.终止程序(例如atol,atoi,输入NULL,会产生段错误,导致程序异常退出,如果没有core文件,找问题的人一定会发疯)2.返回一个表示错误的值(很多系统函数都是这样,例如malloc,内存不足,分配失败,返回NULL指原创 2015-01-29 16:38:35 · 2122 阅读 · 0 评论 -
VS C++ MFC编写GDI+实例
GDI原创 2014-11-02 10:44:06 · 6379 阅读 · 0 评论 -
C++判断字符串是否为数字
机器学习以及人工智能的学习需要扎实的数学功底才能走的更远,爬的更高,所以打好数学基础是关键,但无论工作学习都没有充足的时间去拿着书本一个字一个字的去学习了,这里我建议大家找几个比较靠谱入门的机器学习或者人工智能学习平台,一定要系统全面的去学习才能有效果,不要半途而废,在此推荐一个我看过的小白人工智能入门教程,零基础教程,简单通俗易懂,风趣幽默,由浅及深,点击这里可以直达:人工智能入门基础教程...原创 2014-10-12 16:11:29 · 28341 阅读 · 0 评论 -
Visual Studio 下MFC的创建过程解析
在VC6.0中创建MFC工程与VS下创建MFC工程l原创 2014-10-29 09:37:45 · 7464 阅读 · 0 评论 -
C++检测数字是否为素数(质数)
C++检测数字是否为素数的源码:注意:dos原创 2014-11-08 00:02:22 · 1568 阅读 · 0 评论 -
VC6.0同时打开多个工程
本该记下此方法的原创 2014-09-27 21:37:02 · 1218 阅读 · 1 评论 -
Windws-X64 安装GCC
gcc for WindowsIntroductionMost Unix and Linux users know the GNU Compiler Collection (gcc). This software compiler system is being used to build a lot of software, including modern operating sy转载 2014-09-03 19:11:29 · 1546 阅读 · 0 评论 -
linux(Ubuntu)下安装Eclipse 使用CDT调试C/C++程序
转载出处:http://blog.chinaunix.net/uid-26983585-id-3408501.html1. 下载jre,eclipse,cdt其中jre是java运行环境,eclipse需要先装jre,才可能运行,cdt是在eclipse中运行c\c++程序的插件。1.1 下载jre网址是:java.sun.com得到jre-7u17-lin转载 2013-03-21 15:36:33 · 2412 阅读 · 0 评论 -
11/13位时间戳转化为标准时间
// TimeConvert.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include #include int IsLeap(unsigned short year){ return ((year%4==0)&&(year%100!=0)||(year%400==0));}void MillSecond2LocalTime(l原创 2014-08-02 23:29:01 · 5908 阅读 · 0 评论 -
C++文件操作
#include 包含三个基本的类:fstream/ifstream/ofstream(输入输出文件、输入文件、输出文件)1. 打开文件 open()void open(const char* filename, int access);参数:filename 文件名,用双斜杠,例如 C:\\path\\123.txtaccess 打开文件的属性。如下列原创 2013-09-22 19:27:31 · 922 阅读 · 0 评论 -
C/C++计时函数汇总
【C/C++】计时函数比较 目前,存在着各种计时函数,一般的处理都是先调用计时函数,记下当前时间tstart,然后处理一段程序,再调用计时函数,记下处理后的时间tend,再tend和tstart做差,就可以得到程序的执行时间,但是各种计时函数的精度不一样.下面对各种计时函数,做些简单记录. 方法1,time()获取当前的系统时间,返回的结果是一个time_t类型,其实就是一转载 2014-07-08 11:43:28 · 886 阅读 · 0 评论 -
C++ Assert()断言机制原理以及使用
机器学习以及人工智能的学习需要扎实的数学功底才能走的更远,爬的更高,所以打好数学基础是关键,但无论工作学习都没有充足的时间去拿着书本一个字一个字的去学习了,这里我建议大家找几个比较靠谱入门的机器学习或者人工智能学习平台,一定要系统全面的去学习才能有效果,不要半途而废, 在此推荐一个我看过的小白人工智能入门教程,零基础教程,简单通俗易懂,风趣幽默,由浅及深,点击这里可以直达:人工智能入门基础教程,...原创 2014-04-12 21:28:31 · 46423 阅读 · 1 评论 -
异或运算及其应用-查找奇数个数的数字
异或运算功能很强大。用的得当可以提高算法效率。先说一下异或运算的运算法则: 1. a ^ b = b ^ a 2. a ^ b ^ c = a ^ (b ^ c) = (a ^ b) ^ c 3. d = a ^ b ^ c 可以推出 a = d ^ b ^ c 4. a ^ b ^ a = b原创 2014-04-08 18:15:45 · 3640 阅读 · 0 评论 -
_InterlockedAnd _InterlockedOr等原子级安全运算
http://msdn.microsoft.com/en-us/library/windows/desktop/ff471407(v=vs.85).aspx内部与-安全操作_InterlockedAnd _InterlockedOr在 VS2010 中,在x86 x64编译模式下 ,InterlockedAnd 与_InterlockedAnd 的使用问题原创 2014-12-06 21:08:01 · 2780 阅读 · 0 评论 -
C++访问控制
测试程序如下:#include using namespace std; class A{ public: A(int i_,int j_) { i=i_; j=j_; } void disp(A &a) { cout<<a.i<<endl<<a.j<<endl; } priv原创 2015-07-17 22:45:20 · 663 阅读 · 0 评论 -
C++类中初始化成员变量总结
1、普通的变量:一般不考虑啥效率的情况下 可以在构造函数中进行赋值。考虑一下效率的可以再构造函数的初始化列表中进行。 class CA{public:int data;……public:CA();…… }; CA::CA():data(0)//……#1……初始化列表方式{//da转载 2015-09-07 17:40:08 · 524 阅读 · 0 评论 -
GDB调试多进程/线程
GDB调试多进程与多线程Linux下工作,使用VIM编辑器,调试使用GDB。如同金科玉律一般,但熟练使用得费些力气才行。 VIM编辑器,要熟练各种快捷键,否则,对于新手,简直就是噩梦! GDB调试器,相比GUI界面,使用起来不那么直观,但功能很强大! 本文以nghttp2的多进程/线程调试为例。 入正题!1 多进程[process]与多线程[thread]我们写的比较多的是多线程程序原创 2016-10-23 23:25:12 · 702 阅读 · 0 评论 -
MFC定时器的基础以及高级使用
在MFC中和定时器相关的有三个函数UINT SetTimer( UINT nIDEvent, UINT nElapse, void (CALLBACK EXPORT* lpfnTimer)( HWND, UINT, UINT, DWORD) );afx_msg void OnTimer( UINT nIDEvent );BOOL KillTimer( int nIDEvent );原创 2016-04-22 21:21:38 · 1381 阅读 · 0 评论 -
WaitForSingleObject与WaitForMultipleObjects用法详解
等待某一线程完成了再继续做其他事情,要实现这个目的,可以使用Windows API函数WaitForSingleObject,或者WaitForMultipleObjects。这两个函数都会等待Object被标为有信号(signaled)时才返回的。原创 2016-04-20 09:13:21 · 9431 阅读 · 0 评论 -
GetLastError使用以及打印输出方法
GetLastError()返回的只是一个双字节数值(DWORD),但从双字节数无法直接知道错误出处,除非你把错误代码及其含义都记住了(呵呵,一万多个呢...),有个简单输出的方法如下:原创 2016-04-20 09:43:21 · 9794 阅读 · 0 评论 -
MFC获取时间的几种方法
MFC获取时间方法转载 2016-04-20 09:50:18 · 7280 阅读 · 0 评论 -
DMA(直接存储器存取)
DMA(Direct Memory Access)DMA(Direct Memory Access)即直接存储器存取,是一种快速传送数据的机制。工作原理DMA是指外部设备不通过CPU而直接与系统内存交换数据的接口技术。原创 2016-04-14 10:05:44 · 7250 阅读 · 0 评论 -
MFC按钮上添加图片
MFC按钮上添加图片两种方法:每种方法都需要两个步骤1.建立图片句柄 2.在按钮上根据句柄显示图片原创 2016-04-12 23:00:12 · 11232 阅读 · 6 评论 -
C++正则表达式的使用
C++里面使用正则表达式一般有三种:C regex,C ++regex,boost regex C regex 的速度是最快的 C++ regex 速度一般 boost regex 速度最慢,但是用起来最方便 速度上大约是这么个情况:V(C)=5V(C++)=10(Boost)原创 2015-12-25 19:56:32 · 17333 阅读 · 3 评论 -
C++确定常量的数据类型
C++如何确定常量的数据类型C++中的数据类型本文部分内容来源于《C++ primer plus》 部分内容来源于网络,部分内容是自己的个人经验一般情况下,我们在程序中会声明特定类型的变量,比如: bool 布尔型 char 字符型 8位 wchar_t 宽字符型 16位 short 短整型 16位 int 整型 16位 long 长整型 32位 float 单精度浮点型 6为有效原创 2015-11-25 15:11:34 · 3171 阅读 · 0 评论 -
如何交换两个变量的值
不浪费额外空间交换数值的四种方法原创 2015-11-16 17:04:53 · 1338 阅读 · 0 评论 -
std::auto_ptr的原理及使用
使用auto_ptr作为成员变量,以避免资源泄漏。防止资源泄漏,我们通常在构造函数中申请,析构函数中释放,但是只有构造函数调用成功,析构函数才会被调用,换句话说,如果在构造函数中产生了异常,那么析构函数将不会调用,这样就会造成资源泄漏的隐患。auto_ptr解决这个问题原创 2015-11-13 17:38:11 · 5817 阅读 · 0 评论 -
非类型模板参数与 非类型类模板参数的使用
函数模板和类模板,模板参数并不局限于类型,普通值也可以作为模板参数。 当要使用基于值的模板时,必须显式地指定这些值,才能够对模板进行实例化,并获得最终代码原创 2015-11-13 17:15:44 · 2219 阅读 · 0 评论 -
关于完全平方数的因子个数是奇数个的说明
机器学习以及人工智能的学习需要扎实的数学功底才能走的更远,爬的更高,所以打好数学基础是关键,但无论工作学习都没有充足的时间去拿着书本一个字一个字的去学习了,这里我建议大家找几个比较靠谱入门的机器学习或者人工智能学习平台,一定要系统全面的去学习才能有效果,不要半途而废,在此推荐一个我看过的小白人工智能入门教程,零基础教程,简单通俗易懂,风趣幽默,由浅及深,点击这里可以直达:人工智能入门基础教程...原创 2015-09-12 17:07:01 · 6923 阅读 · 0 评论 -
windows下函数参数入栈顺序和栈帧结构
栈帧布局栈帧在函数调用时进行构建,以进行内存的隐式分配。内存可以显示的通过malloc(), calloc(), realloc(), new, free和delte在堆上进行申请和释放。不同的操作系统的栈帧布局可能不同,一个典型的栈帧布局如下所示:原创 2015-09-04 21:04:47 · 2600 阅读 · 0 评论 -
递归函数时间复杂度分析
递归函数时间复杂度分析(1) 递归执行过程 例子:求N!。 这是一个简单的"累乘"问题,用递归算法也能解决。 n! = n * (n - 1)! n > 1 0! = 1, 1! = 1 n = 0,1 因此,递归算法如下: Java代码 fact(int n) { if(n == 0转载 2015-09-04 21:47:03 · 709 阅读 · 0 评论 -
虚函数与纯虚函数之我见
纯虚函数是一种特殊的虚函数,在许多情况下,在基类中不能对虚函数给出有意义的实现,而把它声明为纯虚函数,它的实现留给该基类的派生类去做。这就是纯虚函数的作用。原创 2014-04-06 12:25:38 · 823 阅读 · 0 评论 -
cout格式化输出
在使用流操纵算子时使用原创 2014-04-05 16:08:52 · 1501 阅读 · 0 评论 -
cout知识补充
将 cout 的 flag 保存到变量, 以便修改后的恢复 ostream::fmtflags old = cout.flag() ; // 无参将返回当前 flag 值 cout.flag(old) ; // 恢复到原先保存的值将 bool 值以 literals 输出cout "nume转载 2014-04-05 16:17:12 · 744 阅读 · 0 评论 -
windows与linux动态库搜索顺序
打开动态库函数(dlopen或LoadLibrary)中指定动态库的文件名,在程序运行时按照以下次序来搜索动态库一、库文件的搜索路径:1、在配置文件/etc/ld.so.conf中指定动态库搜索路径(需要添加其它库文件的路径,在文件的最后添加具体的路径即可 [ 如:/usr/local/lib ],添加后保存退出,然后在命令行ldconfig2、通过环境变量LD_LIB原创 2013-04-27 15:21:38 · 1582 阅读 · 0 评论 -
MFC Invalidate() 与 InvalidateRect() 与 UpdateWindow()
1. void Invalidate( BOOL bErase = TRUE ); 该函数的作用是使整个窗口客户区无效。窗口的客户区无效意味着需要重绘,例如,如果一个被其它窗口遮住的窗口变成了前台窗口,那么原来被遮住的部分就是无效的,需要重绘。这时Windows会在应用程序的消息队列中放置WM_PAINT消息。MFC为窗口类提供了WM_PAINT的消息处理函数OnPaint,OnPa转载 2013-04-16 09:15:48 · 1931 阅读 · 0 评论