C++学习
文章平均质量分 64
djd已经存在
······
展开
-
学习C语言基本思路与参考书籍
作者:林建入链接:http://zhuanlan.zhihu.com/linjr/19694823来源:知乎计算机行业发展非常快,大学里的教育基本都跟不上实际的社会需求。如果你所在的学校还在指定大家使用谭浩强的教材,或使用VC6.0来教大家上机实验,那你不妨看看本文,这里有一些建议可以帮助你不会脱离社会太远。考虑到这是一个过来人感觉很基础,但是对于初学者又觉得困难重重的问题转载 2016-02-23 18:58:02 · 1402 阅读 · 0 评论 -
SetThreadAffinityMask的用法
MSDN上的描述: SetThreadAffinityMask The SetThreadAffinityMask function sets a processor affinity mask for the specified thread. DWORD_PTR SetThreadAffinityMask( HANDLE hThread, DWORD_PT原创 2015-10-13 21:11:40 · 4361 阅读 · 0 评论 -
获取进程信息-C++
//获取进程路径CString GetProcessPath( DWORD idProcess ){ // 获取进程路径 CString sPath; // 打开进程句柄 HANDLE hProcess = OpenProcess( PROCESS_QUERY_INFORMATION | PROCESS_VM_READ, FALSE, idProcess );原创 2015-10-13 21:06:00 · 5536 阅读 · 0 评论 -
MFC中static空间动态显示重叠问题
今天写一个小程序,在动态显示一个参数的正确率的时候,出现了重叠的问题,就是比如说刚开始正确率为0%,之后变成了100%,两个数字就会重叠在一起,其实这个问题我在其他空间的时候也遇到过,就是动态折画图的时候,你每重画一次需要刷新一下这个控件,先讲一讲解决这个问题的过程,当时画图的时候,开始用的是invidate()这个函数就是使得当前的页面绘画无效,之后发现这个没刷新一次屏幕就会闪一次,很不美观啊,原创 2015-10-13 17:24:25 · 2786 阅读 · 0 评论 -
CString与const char*转换
Format函数也是很不错的.1. string转const char* string s = "abc"; const char* c_s = s.c_str();2. const char*转string 直接赋值即可 const char* c_s = "abc"; string s(c_s);3. string转char* string原创 2015-10-13 17:29:01 · 1390 阅读 · 0 评论 -
WaitForSingleObject的用法
WaitForSingleObject的用法 1.WaitForSingleObject 的用法DWORDWaitForSingleObject( HANDLE hHandle, DWORD dwMilliseco原创 2015-10-13 20:39:38 · 1188 阅读 · 0 评论 -
C++中的Sleep函数分析
linux下的sleep函数原型为: unsigned int sleep(unsigned int seconds);而MFC中的Sleep函数原型为: void Sleep(DWORD dwMilliseconds);也就是说,Linux下(使用的gcc的库),sleep()函数是以秒为单位的,sleep(1);就是休眠1秒。原创 2015-10-13 19:59:42 · 4309 阅读 · 0 评论 -
C++拷贝构造函数(深拷贝,浅拷贝)
对于普通类型的对象来说,它们之间的复制是很简单的,例如:int a=88;int b=a; 而类对象与普通对象不同,类对象内部结构一般较为复杂,存在各种成员变量。下面看一个类对象拷贝的简单例子。 #include using namespace std;class CExample {private: int a;public: CExample(int原创 2015-10-11 18:05:55 · 1025 阅读 · 0 评论 -
详细解说 STL 排序(Sort)
详细解说 STL 排序(Sort) winter详细解说 STL 排序(Sort)0 前言: STL,为什么你必须掌握1 STL提供的Sort 算法1.1 所有sort算法介绍1.2 sort 中的比较函数1.3 sort 的稳定性1.4 全排序1.5 局部排序1.6 nth_element 指定元素排序1.7 partition 和stable_partition转载 2015-10-22 23:50:29 · 1042 阅读 · 0 评论 -
GetTickCount()函数的作用和用法
DWORD GetTickCount(void); 1) 定义For Release configurations, this function returns the number of milliseconds since the device booted, excluding any time that the system was suspended. GetTic原创 2015-10-13 20:52:24 · 2338 阅读 · 0 评论 -
assert()函数用法总结
assert宏的原型定义在中,其作用是如果它的条件返回错误,则终止程序执行,原型定义:#include assert.h>void assert( int expression ); assert的作用是现计算表达式 expression ,如果其值为假(即为0),那么它先向stderr打印一条出错信息,然后通过调用 abort 来终止程序运行。请看下面的程序清单badptr.原创 2015-10-31 18:53:37 · 1066 阅读 · 0 评论 -
strlen源码剖析
学习高效编程的有效途径之一就是阅读高手写的源代码,CRT(C/C++ Runtime Library)作为底层的函数库,实现必然高效。恰好手中就有glibc和VC的CRT源代码,于是挑了一个相对简单的函数strlen研究了一下,并对各种实现作了简单的效率测试。strlen的函数原形如下: size_t strlen(const char *str);strlen返原创 2015-11-24 11:48:58 · 1013 阅读 · 0 评论 -
指针数组和数组指针的区别
指针数组:array of pointers,即用于存储指针的数组,也就是数组元素都是指针数组指针:a pointer to an array,即指向数组的指针还要注意的是他们用法的区别,下面举例说明。int* a[4] 指针数组 表示:数组a中的元素都为int型指针原创 2016-03-18 22:01:09 · 1178 阅读 · 0 评论 -
VS2010 error: LINK : fatal error LNK1123: failure during conversion to COFF: file invalid or corrupt
安装VS2012后结果使用VS2010时, 出现错误 LINK : fatal error LNK1123: failure during conversion to COFF: file invalid or corrupt解决办法也很简单, 如下: To summarize:Either disable incremental linking, by goi原创 2016-01-14 15:33:44 · 1321 阅读 · 0 评论 -
Win7-64位系统中VC++ 6.0打开文件崩溃解决办法
据说VC++6.0与Windows7不兼容,但不知道是真是假。不过就我在win7上装VC的经历而言,的确感觉问题不少。一开始下载的几个版本,在编译时总是出现一些错误,也不知道问题出在哪儿。后来在网上找了一个据说是与win7兼容的版本,编译时能通过,不出错误,只是在用组合键打开文档或者点击File|open时,总是会崩溃掉。最后在微软的官网上找到了问题的解决方法。由于那个网页是由机器翻译的,所以阅读原创 2016-01-13 16:58:58 · 7912 阅读 · 0 评论 -
C/C++内存泄漏及检测
“该死系统存在内存泄漏问题”,项目中由于各方面因素,总是有人抱怨存在内存泄漏,系统长时间运行之后,可用内存越来越少,甚至导致了某些服务失败。内存泄漏是最难发现的常见错误之一,因为除非用完内存或调用malloc失败,否则都不会导致任何问题。实际上,使用C/C++这类没有垃圾回收机制的语言时,你很多时间都花在处理如何正确释放内存上。如果程序运行时间足够长,如后台进程运行在服务器上,只要服务器不宕机就一转载 2016-01-25 19:29:04 · 1229 阅读 · 0 评论 -
C\C++代码优化的27个建议
英文出自:http://people.cs.clemson.edu/~dhouse/courses/405/papers/optimize.pdf1. 记住阿姆达尔定律:funccost是函数func运行时间百分比,funcspeedup是你优化函数的运行的系数。所以,如果你优化了函数TriangleIntersect执行40%的运行时间,使它运行快了近两倍,而你的原创 2016-01-25 19:16:53 · 1095 阅读 · 0 评论 -
sort函数的用法,自定义comp参数。
sort函数在使用中非常好用,也非常简单,而且效率与冒泡或者选择排序不是一个数量级。本文就sort函数在vector中的用法分为sort函数入门用法与自定义comp比较函数比较结构体这两个最基本的功能讲讲其用法:1、sort入门:使用sort需要包含algorithm头文件,完整代码如下#include#include#include//貌似可以不用,但最好加上。us原创 2015-12-06 19:17:02 · 5292 阅读 · 0 评论 -
C++ STL学习之queue
queue 队列也是一个线性存储表,与后进先出的堆栈不同,元素数据的插入在表的一端进行,在另一端删除,从而构成了一个先进先出(First In First Out) 表。插入一端称为队尾,删除一端称为队首。 由于C++ STL 的队列泛化,默认使用双端队列 deque 来实现,因此,queue 也可看成一个容器的适配器,将 deque 容器转换为 queue 容器。当然,也原创 2015-12-03 10:35:49 · 1081 阅读 · 0 评论 -
讨论:什么才算是真正的编程能力?
伯乐在线小编注:本文综合整理自知乎同名问答帖。题主的问题补充如下:还在读书,也在实验室帮忙做了些东西,自己也搭过几个网站。在周围人看来似乎好像我很厉害,做了那么多东西,但是我发现这些东西虽然是我做的,但是实际上我手把手自己写的代码却并没有多少,很多都是用开源的东西,我写的代码无非是把别人的东西整合下,类似于胶水一样的工作。我之前所认为的编程是全手动一行一行敲代码,但是现在我发现原创 2016-01-16 17:19:40 · 1236 阅读 · 0 评论 -
vector容器 std::unique函数的实现
源于《挑战程序设计竞赛》第164页程序中调用的函数unique, 今天好好看看。 该函数std::unique位于头文件声明1如下:[cpp] view plaincopytemplateclass ForwardIt > ForwardIt unique( ForwardIt first, ForwardIt last );原创 2015-10-22 23:43:37 · 2011 阅读 · 0 评论 -
C++ STL学习之stack
stack 介绍栈是一种容器适配器,特别为后入先出而设计的一种(LIFO ),那种数据被插入,然后再容器末端取出栈实现了容器适配器,这是用了一个封装了的类作为他的特定容器,提供了一组成员函数去访问他的元素,元素从特定的容器,也就是堆栈的头取出袁术。这个基础的容器可能是任何标准的容器类,和一些其他特殊设计的模板类,唯一的要求就是要支持一下的操作[cpp]原创 2015-10-19 00:01:32 · 1130 阅读 · 0 评论 -
各种字符串Hash函数比较
常用的字符串Hash函数还有ELFHash,APHash等等,都是十分简单有效的方法.这些函数使用位运算使得每一个字符都对最后的函数值产生影响.另外还有以MD5和SHA1为代表的杂凑函数,这些函数几乎不可能找到碰撞.常用字符串哈希函数有BKDRHash,APHash,DJBHash,JSHash,RSHash,SDBMHash,PJWHash,ELFHash等等。对于以上几种哈希函数,我对原创 2015-09-08 19:28:30 · 1133 阅读 · 0 评论 -
AfxMessageBox和MessageBox区别
如果用MFC的话,请尽量使用afxmessagebox,因为这个全局的对话框最安全,也最方便。 但是在WIN32 SDK的情况下只能使用MESSAGEBOX。MessageBox()是Win32API函数.后者是mfc中的全局函数.在MFC中能用MessageBox()的地方都能用AfxMessageBox().afxmessagebox更多的时候是用于调试AfxMes原创 2015-07-27 16:29:55 · 1286 阅读 · 0 评论 -
gdb 调试利器
1. gdb 调试利器GDB是一个由GNU开源组织发布的、UNIX/LINUX操作系统下的、基于命令行的、功能强大的程序调试工具。对于一名Linux下工作的c++程序员,gdb是必不可少的工具;1.1. 启动gdb对C/C++程序的调试,需要在编译前就加上-g选项:$g++ -g hello.cpp -o hello调试可执行文件:$gdb原创 2015-07-27 14:43:21 · 1420 阅读 · 0 评论 -
VC6 在使用VC助手(Visual AssistX)在Win7下不能使用↑↓←→及回车键选择的解决办法
VC6使用Visual AssistX版本的问题,换一个版本,如“Visual Assist X 10.8.2029”即可解决。http://pan.baidu.com/wap/shareview?&shareid=3343804032&uk=2032122079&dir=%2FWDK_7600&page=1&num=20&fsid=378361422774895&third=0原创 2015-07-13 14:56:54 · 3295 阅读 · 0 评论 -
MFC界面库BCGControlBar的介绍
英文原文:http://www.bcgsoft.com/bcgcontrolbarpro.htmBCGControlBar是MFC的一个扩展库其英文全称是"Business Components Gallery ControlBar",它允许你去创建像完全自定义的像Microsoft Office 2000/XP/2003/2007/2010/2013 and Visual Studio的界原创 2015-07-11 19:48:45 · 5122 阅读 · 0 评论 -
【干货】国外程序员整理的 C++ 资源大全
关于 C++ 框架、库和资源的一些汇总列表,由 fffaraz发起和维护。内容包括:标准库、Web应用框架、人工智能、数据库、图片处理、机器学习、日志、代码分析等。标准库C++ Standard Library:是一系列类和函数的集合,使用核心语言编写,也是C++ISO自身标准的一部分。Standard Template Library:标准模板库C POSIX lib原创 2015-06-12 09:13:17 · 1650 阅读 · 0 评论 -
BCG在程序中的使用
首先你电脑上是安装有BCG的,具体安装方法就是先双击安装程序,之后编译其中的两个工程,之后将其生成的.dll\.lib文件放入C++的include中这样就可以使用BCG的控件了。1. 在stdafx.h文件中添加头文件 #include2.在程序的APP中设置风格并cleanup,这里风格可以选择很多种,包括2003、2007、2010等。CBCGPVisualManager2007原创 2015-07-09 17:46:54 · 2434 阅读 · 1 评论 -
IO中同步、异步与阻塞、非阻塞的区别
一、同步与异步同步/异步, 它们是消息的通知机制1. 概念解释A. 同步所谓同步,就是在发出一个功能调用时,在没有得到结果之前,该调用就不返回。按照这个定义,其实绝大多数函数都是同步调用(例如sin isdigit等)。但是一般而言,我们在说同步、异步的时候,特指那些需要其他部件协作或者需要一定时间完成的任务。最常见的例子就是 SendMessage。该函数转载 2015-06-09 14:39:39 · 1144 阅读 · 0 评论 -
Linux中的AIO(异步I/O asynchronous I/O )
Linux中最常用的输入/输出(I/O)模型是同步 I/O。在这个模型中,当请求发出之后,应用程序就会阻塞,直到请求满足为止。这是很好的一种解决方案,因为调用应用程序在等待 I/O 请求完成时不需要使用任何中央处理单元(CPU)。但是在某些情况中,I/O 请求可能需要与其他进程产生交叠(并行)。可移植操作系统接口(POSIX)异步 I/O(AIO)应用程序接口(API)就提供了这种功能。在转载 2015-06-09 14:41:37 · 1623 阅读 · 0 评论 -
C/C++基本数据类型所占字节数
关于这个基本的问题,很早以前就很清楚了,C标准中并没有具体给出规定那个基本类型应该是多少字节数,而且这个也与机器、OS、编译器有关,比如同样是在32bits的操作系统系,VC++的编译器下int类型为占4个字节;而tuborC下则是2个字节。所以int,long int,short int的宽度都可能随编译器而异。但有几条铁定的原则(ANSI/ISO制订的):原创 2015-08-11 11:50:17 · 1248 阅读 · 0 评论 -
C++学习之:打开文件对话框和打开文件夹对话框
由于各种应用,我们需要调用系统的打开文件对话框或者打开文件夹对话框,或两者兼有。今遇到这个情况已经解决,特写下这篇博文。 1.打开文件对话框常用的方法是使用系统的CFileDialog。这里介绍另外一种方法就是使用OPENFILENAME这个结构体和GetOpenFileName()这个函数,可以实现单选文件或者多选文件,代码如下:TCHAR szBuffer[MAX_PATH] =原创 2015-08-12 21:18:45 · 2461 阅读 · 1 评论 -
在VC++6.0中给对话框设置背景色或者背景图片
/************************************************************说明: 在VC++6.0中给对话框设置背景色或者背景图片*备注:测试代码的对话框程序的工程名为:BJ*原理:在OnPaint()中加入代码***********************************************************/ //原创 2015-08-12 22:32:57 · 3549 阅读 · 0 评论 -
Linux Makefile文件编写详细步骤与实践
Linux Makefile文件编写详细步骤与实践1.makefile概述 Windows环境下IDE会帮你完成makefile文件的编写,但在UNIX环境下你就必须自己写makefile了,会不会写makefile,从一个侧面说明了一个人是否具备完成大型工程的能力。因为,makefile关系到了整个工程的编译规则。一个工程中的源文件不计数,其按类型、功能、模块分别放在若干个目录原创 2015-08-06 19:05:00 · 1632 阅读 · 0 评论 -
atof(),atoi(),itoa(),sprintf()函数详解
今天程序出了一个小bug就是因为atoi引起的,所以今天总结一下,学习一下相关函数的用法,转换整数的时候用atoi而转换浮点数的时候应该用atof这个函数,今天我就是错用了atoi导致小数点以后的数值缺失.一、 atof()头文件#include原型:double atof(const char *nptr);作用:把字符串转换成浮点数,直至遇到第一个空格。原创 2015-09-09 16:51:32 · 1806 阅读 · 0 评论 -
标准C++中的string类的用法詳解
相信使用过MFC编程的朋友对CString这个类的印象应该非常深刻吧?的确,MFC中的CString类使用起来真的非常的方便好用。但是如果离开了MFC框架,还有没有这样使用起来非常方便的类呢?答案是肯定的。也许有人会说,即使不用MFC框架,也可以想办法使用MFC中的API,具体的操作方法在本文最后给出操作方法。其实,可能很多人很可能会忽略掉标准C++中string类的使用。标准C++中提供的str转载 2015-09-08 19:36:44 · 1030 阅读 · 0 评论 -
VC6.0使用richedit2.0 or richedit3.0
使用原因:由于RichEdit2.0A自动为宽字符(WideChar),所以它可以解决中文乱码以及一些汉字问题 方法一:(msdn上的做法,适用于用VC.NET及以后版本创建的工程) To update rich edit controls in existing Visual C++ applications to version 2.0,原创 2015-08-05 14:46:06 · 1831 阅读 · 0 评论 -
C++开发者都应该使用的10个C++11特性
本文由 伯乐在线 - 治不好你我就不是兽医 翻译 在C++11新标准中,语言本身和标准库都增加了很多新内容,本文只涉及了一些皮毛。不过我相信这些新特性当中有一些,应该成为所有C++开发者的常规装备。你也许看到过许多类似介绍各种C++11特性的文章。下面是我总结的,C++开发者都需要学习和使用的C++11新特性。 auto 在C++11之前原创 2015-08-31 19:04:59 · 1356 阅读 · 0 评论 -
C++中map容器的使用说明
C++中map容器提供一个键值对容器,map与multimap差别仅仅在于multiple允许一个键对应多个值.一.map的说明1.头文件#include2.定义方法(1)map m;(2)typedef map M; M m;3.插入数据(1)m['a'] = 1(2)m.insert(map::value_type("b",2));(3)m.i原创 2015-08-31 18:43:05 · 1449 阅读 · 0 评论