
C++
文章平均质量分 67
知行且执行
这个作者很懒,什么都没留下…
展开
-
windows程序设计中MM_TEXT模式下的逻辑坐标与设备坐标的转换
在windows程序设计中,MM_TEXT模式下逻辑坐标和设备坐标原点默认是(0 , 0) ,在客户区左上角。x轴从左到右增加,y轴从上到下增加。当使用SetViewportOrgEx() 和 SetWinodwOrgEX()函数修改设备坐标系和窗口(逻辑)坐标系时,我们该怎么简单的找到逻辑坐标系点(0 , 0 )在变换后的位置,一种简单的方法是移动逻辑坐标系原点去和设备坐标系原点重合(注意:不管原创 2013-11-04 21:15:25 · 2625 阅读 · 0 评论 -
2015小米在线笔试题
1、问题:输入两个32位int型数,求其他们二进制位有多少不相同。 思路:对输入的两个数m,n进行异或操作结果为a,a的二进制中有多少位为1就是所求结果, 让a分别与32个只有一位为1其它是0的int数进行&操作若不为0就可以判断这位为1. 代码:#include #include #include using nam原创 2015-04-25 10:31:39 · 1351 阅读 · 1 评论 -
HDU1232 畅通工程
Problem Description某省调查城镇交通状况,得到现有城镇道路统计表,表中列出了每条道路直接连通的城镇。省政府“畅通工程”的目标是使全省任何两个城镇间都可以实现交通(但不一定有直接的道路相连,只要互相间接通过道路可达即可)。问最少还需要建设多少条道路?Input测试输入包含若干测试用例。每个测试用例的第1行给出两个正整数,分别是城镇数目N ( < 1000原创 2015-06-15 21:11:25 · 644 阅读 · 0 评论 -
排序算法(待更新)
1、Bubbling sort#include #include using namespace std;void bubbleSort(int iarray[], int n){ bool flag = false; for(int i=0; i<n-1&&!flag; ++i) { for(int j=i+1; j<n; ++j) { if(iarray[i原创 2015-06-30 22:48:52 · 660 阅读 · 0 评论 -
字符串Hash函数
Hash函数:Hash,一般翻译做"散列",也有直接音译为"哈希"的,就是把任意长度的输入(又叫做预映射, pre-image),通过散列算法,变换成固定长度的输出,该输出就是散列值。这种转换是一种压缩映射,也就是,散列值的空间通常远小于输入的空间,不同的输入可能会散列成相同的输出,而不可能从散列值来唯一的确定输入值。简单的说就是一种将任意长度的消息压缩到某一固定长度的消息摘要的函数。完美的h原创 2015-07-19 11:29:18 · 828 阅读 · 0 评论 -
C与C++的区别
1 C与C++设计区别C是一个结构化语言,它的重点在于算法和数据结构。C程序的设计首要考虑的是如何通过一个过程,对输入(或环境条件)进行运算处理得到输出(或实现过程(事务)控制),而对于C++,首要考虑的是如何构造一个对象模型,让这个模型能够契合与之对应的问题域,这样就可以通过获取对象的状态信息得到输出或实现过程(事务)控制。 C实现了C++中过程化控制及其它相关功能,而在C++中的C(我称它原创 2015-07-24 10:58:16 · 1402 阅读 · 0 评论 -
C++中string使用
所有解释已经在程序中标明,不再单独解释代码://如何使用C++标准库类型中的string#include #include #include using namespace std;int main(){ //1、构造函数 cout << "***********************string类的构造函数***********************" << en原创 2015-09-03 22:11:16 · 2887 阅读 · 0 评论 -
单例模式C++实现
单例模式了解一般情况下,我们需要一些工具性质的类,这种类没有太多跟自身有关的数据。若每次使用时都new一个实例会增加不必要的开销,也是代码臃肿,其实我们只需要一个实例即可。若是采用全局变量或是静态变量方式,虽然可以实现但是影响了封装性。此时我们可以使用设计模式中的Singleton模式,我们把构造函数声明为private, 这样就不会被外部new了。常见的单例模式主要分两种,一种是在声明时立即实例化原创 2015-09-16 19:33:17 · 959 阅读 · 0 评论 -
常见小问题(待更新)
1、求一组数中第K大或第K小的数思路:使用快速排序#include #include using namespace std;const int ARRAY_LEN = 100;int iarray[ARRAY_LEN];int divide(int low, int high){ if(low>=high)return low; int pvoit = iarra原创 2015-06-30 22:54:04 · 1005 阅读 · 0 评论 -
Windows下使用C++获取目录及子目录下所有文件
转载自:http://read.pudn.com/downloads192/sourcecode/math/903237/贝叶斯邮件过滤源程序(VC%2B%2B实现的源程序)/ReadDir/BrowseDir.h__.htmhttp://blog.youkuaiyun.com/abcjennifer/article/details/18147551BrowseDir.h#in转载 2015-10-07 17:37:46 · 6467 阅读 · 1 评论 -
C++输入输出
C++中的一些常用输入输出:#include #include #include #include using namespace std;void win_io() //由控制台输入{ string line; cout << "输入一些字符后Enter:"; //cin >> line; getline(cin, line); //输入可以带有空格 cout <<原创 2015-10-07 21:18:31 · 718 阅读 · 0 评论 -
heap操作
使用STL中的make_heap, push_heap, pop_heap, sort_heap进行对操作不用每次都自己写建立堆,调整堆和堆排序的代码了!make_heap():根据输入的迭代器,把其范围内的元素建立堆,默认是大顶堆(less())push_heap():末尾添加一个元素,重新调整堆,该算法是在已经满足堆序的情况下添加元素,默认是大顶堆(less())pop_h原创 2015-10-08 15:55:43 · 1179 阅读 · 0 评论 -
C++对象模型
1、简单模型1.1、概述C++类中有两种数据成员:static、nonstatic;三种成员函数:static、nonstatic、virtual。它们在内存中的布局方式和访问方式是不同的。像nonstatic对象是在类对象内存储,虚函数是通过一个虚表指针指向一个虚表再通过虚表查找。静态和非静态函数都在对象之外存储。1.2、对象模型图例定义一个C++类: class Base{public:原创 2015-10-12 08:53:10 · 972 阅读 · 0 评论 -
2014WAP校园招聘笔试题
这是2014年WAP笔试的第一题,当时没有做出了,最近在网上看到一篇博客写了关于这道题的解法,自己看了看用C++实现了。博客地址:http://blog.youkuaiyun.com/litoupu/article/details/41220817题目:AbstractWe are planning an orienteering game.The aim of this game is to原创 2015-05-09 20:32:26 · 2346 阅读 · 0 评论 -
条款25:考虑写一个不抛出异常的swap函数
一、全特化与偏特化特化的意义:对于特定类型如果你有更好的方式实现,就应该由你来实现。全特化:指定模板的每个数据类型偏特化:只指定模板中某些数据类型1、类#include using namespace std;templateclass myClass{public: myClass(TYPE1 i, TYPE2 j):a(i), b(j){cout<<"这是类原创 2015-04-16 17:07:44 · 753 阅读 · 0 评论 -
window程序设计模式映射下的坐标变换及范围注意事项
应当明确几个定义:1.设备坐标系统分为三种:屏幕坐标系统,全窗口坐标系统, 客户区坐标系统2.映射模式:从“窗口”(window)(逻辑坐标)到“视口”(veiwport)(设备坐标)的映射3.视口是以设备坐标(像素)形式指定的4.窗口是以逻辑坐标形式指定的5 在如下映射模式下SetWindowExtEx()和SetViewportExtEx()不起作用: •MM_HI原创 2013-11-06 10:55:24 · 1065 阅读 · 0 评论 -
雷德算法
使用雷德算法实现倒位序: 对于自然顺序(二进制)我们是在低位加 1 得到下一位数,对于倒位序我们是在高位加 1 向低位进位。比如已知一个倒位序数是J求其下一个倒位序数,N位总数 ,把J与N/2比较若J=N/2则说明J的最高位为1 ,把最高位置0 ,比较次高位,若次高位为0 ,则把次高位置1,得到J的下一个倒位序,若次高位为1 , 则把次高位置0,以此类推...以N = 8原创 2013-12-04 15:54:30 · 4993 阅读 · 0 评论 -
VS2012下创建DLL的一种简单方便方式
使用模块定义文件可以是导出的函数名称不变,可以使用VC工具Depends查看。第一步:建立动态链接库 “文件”-“新建项目”-“win32控制台应用程序”在打开的对话框中选择”DLL" , 选中”空项目"建立源文件:Dll1.cppint add(int a , int b){ return a + b ;}建立模块文件:Dll1.defLIBRAR原创 2013-12-28 14:50:15 · 1161 阅读 · 0 评论 -
VS2012中CSting , std::string , char * 之间的转换
首先,设置“项目属性”-“配置属性”-“常规”-“字符集”设置为使用“使用多字节字符集”1、从CSting到std::stringstd::string str ;CString cstr ;str = cstr.GetBuffer() ;2、从std::string到CStringstd::string str("test") ;CString cstr ;cst原创 2014-01-11 23:39:10 · 3741 阅读 · 0 评论 -
OpenCV图像分割cv::grabCut()函数
函数:void grabCut( InputArray img, InputOutputArray mask, Rect rect, InputOutputArray bgdModel, InputOutputArray fgdModel, int iterCount, int mo原创 2014-02-21 17:56:10 · 7880 阅读 · 0 评论 -
【Visual C++】Windows GDI贴图闪烁解决方法
转自:http://blog.youkuaiyun.com/poem_qianmo/article/details/7436397一般的windows 复杂的界面需要使用多层窗口而且要用贴图来美化,所以不可避免在窗口移动或者改变大小的时候出现闪烁。先来谈谈闪烁产生的原因原因一:如果熟悉显卡原理的话,调用GDI函数向屏幕输出的时候并不是立刻就显示在屏幕上只是写到了显存转载 2014-04-14 16:10:11 · 866 阅读 · 0 评论 -
可变参数函数的使用:va_start() , va_end() , va_list
#include #include void arg_test(int i, ...);void arg_test1(int i , ...) ;int main(){ //int int_size = _INTSIZEOF(int); //printf("int_size=%d\n", int_size); //arg_test(4,1,2,3,4);原创 2014-04-26 21:50:38 · 933 阅读 · 0 评论 -
C++格式化输出
/**C++ 格式化输出*/#include #include using namespace std;int main(){ int a = 17; float b = 1.23456789; cout << dec << a << endl;//十进制 cout << hex << a << endl;//十六进制 cout << oct << a << end原创 2014-06-07 14:24:52 · 939 阅读 · 0 评论 -
堆内存和栈内存详解
文章转自:http://blog.youkuaiyun.com/abcjennifer/article/details/39780819堆:顺序随意 栈:先进后出 堆和栈的区别 一、预备知识—程序的内存分配 一个由c/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结转载 2015-04-18 15:22:51 · 570 阅读 · 0 评论 -
C++中vector和set删除一亿个数字中的奇数
一、vector先贴代码再解释:#include #include #include #include using namespace std;const unsigned int NUM = 100000000;void removeOdd1(vector& a){ for(vector::iterator it = a.begin();it!=a.end();)原创 2015-04-18 19:07:13 · 2191 阅读 · 2 评论 -
C++ 虚函数表解析
文章转自:http://blog.youkuaiyun.com/haoel/article/details/1948051/前言 C++中的虚函数的作用主要是实现了多态的机制。关于多态,简而言之就是用父类型别的指针指向其子类的实例,然后通过父类的指针调用实际子类的成员函数。这种技术可以让父类的指针有“多种形态”,这是一种泛型技术。所谓泛型技术,说白了就是试图使用不变的代码来实现可变的算法。比如:模转载 2015-04-18 16:33:59 · 420 阅读 · 0 评论 -
条款27:尽量少做转型操作
特别说明dynamic_cast和static_cast两种1、static_cast#include using namespace std;class Base{public: Base(int i = 0):bVal(i){cout<<"基类构造函数"<<endl;} virtual void say() { cout<<++bVal<<endl; }原创 2015-04-19 20:48:27 · 670 阅读 · 0 评论 -
计算机易混淆概念(待续)
计算机网络1、IP地址(1)IP地址划分 (2)五类IP地址范围 (3)私有IP地址 10.0.0.0——10.255.255.255 172.16.0.0——172.31.255.255 192.168.0.0——192.168.255.255 C++语言1、引用与指针 (1)指针是一个实体,而引用仅是个别名; (2)引用使用时无需解引用(*),指针需要解引用;原创 2015-10-04 10:57:25 · 1382 阅读 · 0 评论