c++
文章平均质量分 77
执着的崽子
这个作者很懒,什么都没留下…
展开
-
vector用法入门
vector是同一种类型的对象集合,并且每个对象都有一个对应的整数索引值。vector是传说中的容器的一种,即在其中可以存储各种类型的数据,很变态的一点是动态存储的,也就是说,可以让你随便删除,随便插入特定类型的数据单元。但是,要保证一个vector或者容器里面只能存放一种数据类型,否则,你就把它给玩儿坏了~1、声明与定义首先,头文件和相关声明必不可少:#include <vector>using原创 2016-03-28 15:32:04 · 447 阅读 · 0 评论 -
MFC多线程编程之二——MFC中的多线程开发
五、MFC对多线程编程的支持MFC中有两类线程,分别称之为工作者线程和用户界面线程。二者的主要区别在于工作者线程没有消息循环,而用户界面线程有自己的消息队列和消息循环。工作者线程没有消息机制,通常用来执行后台计算和维护任务,如冗长的计算过程,打印机的后台打印等。用户界面线程一般用于处理独立于其他线程执行之外的用户输入,响应用户及系统所产生的事件和消息等。但对于Win32的API编程转载 2017-02-21 16:39:07 · 385 阅读 · 0 评论 -
C++ 解引用(*)和箭头(->)运算符的重载
1、箭头运算符必须是类的成员函数。解引用运算符一般也应该声明为类的成员函数,但不是必须。2、箭头用算符返回值必须是一个指针,或者是一个重载了箭头运算符的对象。 a)如果返回的是一个指针将调用内置的箭头运算符。执行相当于(*(p.operator->()).mem;的操作。 b)如果返回是一个重载了箭头运算符的对象,则继续对该对象调用其重载了的箭头运算符,直到返回的是转载 2017-02-27 11:44:22 · 4852 阅读 · 0 评论 -
代理类
Andrew Koenig 和 Barbara Moo 堪称C++研究领域的”第一神仙眷侣”,看他们的书非常有条理性。这次要解释的是C++中的另一个常见问题。找出一种优美的控制内存分配的方法来绑定不同子类对象到容器中。多么复杂的一句话,莫慌,其实很简单,跟着步伐来看。首先假设我们要设计一系列交通工具的类,一般来说我们会定义一个交通工具的基类,里面存放所有交通工具都有的成员和属性,比转载 2017-02-27 17:12:18 · 457 阅读 · 0 评论 -
句柄类
在上一篇博文里,我介绍了代理类的相关内容,如果记性好的朋友,应该已经对代理类有了比较深入的认识。在设计代理类的过程中,我们遇到的核心问题是:内存的分配和编译时类型未知对象的绑定。我们通过让所有子类自定义一个 copy 函数,来返回自身的复制,这种方式来解决需要我们自己来管理内存的繁琐,又通过定义代理类绑定子类的类型,通过一个基类指针来保存子类这种方式来实现运行时绑定。但对代码的追求是永转载 2017-02-27 17:13:45 · 299 阅读 · 0 评论 -
Windows,Linux文件夹相关操作
参考:http://blog.csdn.net/tigerjibo/article/details/11712039http://baike.baidu.com/subview/355/5900599.htmhttp://blog.sina.com.cn/s/blog_5db869d00100h7hi.htmlhttp://baike.baidu.com/view/1279338.htmhttp:/转载 2017-03-17 15:33:24 · 752 阅读 · 0 评论 -
C++文件读写详解(ofstream,ifstream,fstream)
转自:http://blog.csdn.net/kingstar158/article/details/6859379在看C++编程思想中,每个练习基本都是使用ofstream,ifstream,fstream,以前粗略知道其用法和含义,在看了几位大牛的博文后,进行整理和总结:这里主要是讨论fstream的内容: #include <fstream> ofstream /转载 2017-03-20 15:06:51 · 315 阅读 · 0 评论 -
八大排序算法
转载:http://blog.csdn.net/hguisu/article/details/7776068概述排序有内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存。我们这里说说八大排序就是内部排序。 当n较大,则应采用时间复杂度为O(nlo转载 2017-04-10 17:31:10 · 316 阅读 · 0 评论 -
codeblocks平台配置GDAL教程(史上首发)
转自:http://blog.csdn.net/longshengguoji/article/details/17168691Visual studio上面配置GDAL到教程有很多,本人之前到博客里也有一片博文专门介绍如何在visual studio上面配置GDAL,但是如何在codeblocks上面配置GDAL,本人目前为止还没有发现完整到教程。最近几天各种检索,各种配置,总算配置好里,转载 2017-03-15 18:56:18 · 478 阅读 · 0 评论 -
关于C++中的大小端、位段(惑位域)和内存对齐
转自:http://www.cnblogs.com/leezhm/archive/2011/07/19/2110864.html听到好几个朋友说到去一些公司做面试,总是遇到关于大小端、位段(或者叫位域)和内存对齐的考题,然后就不知所措了。虽然我认为很多开发根本就用不到这个,但是我认为很有必要学习理解这些知识点,因为它可以让你更了解C++的,了解程序在内存的运行情况,也能加深对计转载 2017-07-13 09:52:49 · 1002 阅读 · 0 评论 -
malloc、calloc、realloc的区别
转自:http://blog.csdn.net/shuaishuai80/article/details/6140979(1)C语言跟内存分配方式从静态存储区域分配. 内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在.例如全局变量、static变量.在栈上创建 在执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执行结束时这些转载 2017-08-09 16:03:52 · 634 阅读 · 0 评论 -
MFC多线程编程之四——线程的同步
八、线程的同步虽然多线程能给我们带来好处,但是也有不少问题需要解决。例如,对于像磁盘驱动器这样独占性系统资源,由于线程可以执行进程的任何代码段,且线程的运行是由系统调度自动完成的,具有一定的不确定性,因此就有可能出现两个线程同时对磁盘驱动器进行操作,从而出现操作错误;又例如,对于银行系统的计算机来说,可能使用一个线程来更新其用户数据库,而用另外一个线程来读取数据库以响应储户的需要,极有可能转载 2017-02-21 16:41:05 · 577 阅读 · 0 评论 -
MFC多线程编程之三——线程间通讯
七、线程间通讯一般而言,应用程序中的一个次要线程总是为主线程执行特定的任务,这样,主线程和次要线程间必定有一个信息传递的渠道,也就是主线程和次要线程间要进行通信。这种线程间的通信不但是难以避免的,而且在多线程编程中也是复杂和频繁的,下面将进行说明。使用全局变量进行通信由于属于同一个进程的各个线程共享操作系统分配该进程的资源,故解决线程间通信最简单的一种方法是使用全局变量。对转载 2017-02-21 16:40:20 · 309 阅读 · 0 评论 -
C与C++之间相互调用
1、导出C函数以用于C或C++的项目如果使用C语言编写的DLL,希望从中导出函数给C或C++的模块访问,则应使用 __cplusplus 预处理器宏确定正在编译的语言。如果是从C++语言模块使用,则用C链接声明这些函数。如果使用此技术并为DLL提供头文件,则这些函数可以原封不动地由C和C++模块使用。转载 2016-06-01 14:52:55 · 247 阅读 · 0 评论 -
使用ifstream和getline读取文件内容
出处:http://www.cnblogs.com/JCSU/articles/1190685.html假设有一个叫 data.txt 的文件, 它包含以下内容: Fry: One Jillion dollars.[Everyone gasps.]Auctioneer: Sir, that's not a number.数据读取, 测试 。以下就是基于转载 2016-06-01 22:40:24 · 243 阅读 · 0 评论 -
标准C++中的string类的用法总结
相信使用过MFC编程的朋友对CString这个类的印象应该非常深刻吧?的确,MFC中的CString类使用起来真的非常的方便好用。但是如果离开了MFC框架,还有没有这样使用起来非常方便的类呢?答案是肯定的。也许有人会说,即使不用MFC框架,也可以想办法使用MFC中的API,具体的操作方法在本文最后给出操作方法。其实,可能很多人很可能会忽略掉标准C++中string类的使用。标准C++中提供的string类得功能也是非常强大的,一般都能满足我们开发项目时使用。现将具体用法的一部分罗列如下,只起一个抛砖引玉的作转载 2016-06-02 15:39:52 · 222 阅读 · 0 评论 -
C++ 获取文件夹下的所有文件名
[cpp] view plain copychar * filePath = "D:\\sample"; vector files; ////获取该路径下的所有文件 getFiles(filePath, files ); char str[30]; int size = files.size(); for (int转载 2016-06-02 16:55:32 · 1759 阅读 · 0 评论 -
C/C++中time.h
1.概念在C/C++中,对字符串的操作有很多值得注意的问题,同样,C/C++对时间的操作也有许多值得大家注意的地方。最近,在技 术群中有很 多网友也多次问到过C++语言中对时间的操作、获取和显示等等的问题。下面,在这篇文章中,笔者将主要介绍在C/C++中时间和日期的使用方法.通过学习许多C/C++库,你可以有很多操作、使用时间的方法。但在这之前你需要了解一些“时间”和“日期”的概念,主要有以下几个:Coordinated Universal Time(UTC):协调世界时,又称为世界标准时间,也就转载 2016-06-02 20:09:42 · 340 阅读 · 0 评论 -
C++读写二进制文件
使用C++读写二进制文件,在开发中操作的比较频繁,今天有幸找到一篇文章,遂进行了一些试验,并进行了部分的总结。转载 2016-07-15 12:27:38 · 704 阅读 · 0 评论 -
CMarkup类操作XML
转自:http://www.cppblog.com/totti1006/archive/2009/07/27/63672.htmlhttp://www.cnblogs.com/likebeta/archive/2011/08/19/2145339.html 首先到http://www.firstobject.com/dn_markup.htm上面下载CMarkup类,将C转载 2016-12-01 14:39:16 · 1412 阅读 · 0 评论 -
CImage下的双缓存
网上关于CImage的资料真是少……因为项目的原因,需要用到CImage类,但是图像刷新很频繁,导致闪屏很严重,有查不着相关的资料,真是纠结了很久。不过最后还是解决了^_^ ^_^ ^_^ 不管利用的是什么类,什么工具,双缓存的思想是一致的:首先创建一个内存DC,记为MemDC;接着将我们的所有的绘图操作都画到MemDC中;最后利用BitBlt或者StretchBlt将MemDC中的内容一次性原创 2017-01-06 19:31:00 · 1599 阅读 · 1 评论 -
复制构造函数 与 赋值函数 的区别
转自:http://www.cnblogs.com/kaituorensheng/p/3245522.html构造函数、析构函数、赋值函数是每个类最基本的的函数。每个类只有一个析构函数和一个赋值函数。但是有很多构造函数(一个为复制构造函数,其他为普通构造函数。对于一个类A,如果不编写上述四个函数,c++编译器将自动为A产生四个默认的函数,即:A(void)转载 2017-02-20 20:05:42 · 212 阅读 · 0 评论 -
MFC多线程编程之一———问题提出及多线程编程简介
一、问题的提出编写一个耗时的单线程程序:新建一个基于对话框的应用程序SingleThread,在主对话框IDD_SINGLETHREAD_DIALOG添加一个按钮,ID为IDC_SLEEP_SIX_SECOND,标题为“延时6秒”,添加按钮的响应函数,代码如下:[cpp] view plain copy print?void转载 2017-02-21 16:36:51 · 250 阅读 · 0 评论 -
C++ trivial、non-trivial及POD类型
今天看书看到侯捷的《STL源码剖析》里提到trivial和non-trivial及POD类型,查了些资料理解了一下。trivial意思是无意义,这个trivial和non-trivial是对类的四种函数来说的:构造函数(ctor)复制构造函数(copy)赋值函数(assignment)析构函数(dtor)如果至少满足下面3条里的一条:显式(exp转载 2017-08-10 17:16:22 · 1922 阅读 · 0 评论