- 博客(35)
- 资源 (7)
- 收藏
- 关注
转载 编程之美 ————寻找最大的k个数
问题:查找大量无序元素中最大的K个数。 解法一:该解法是大部分能想到的,也是第一想到的方法。假设数据量不大,可以先用快速排序或堆排序,他们的平均时间复杂度为O(N*logN),然后取出前K个,时间复杂度为O(K),总的时间复杂度为O(N*logN)+O(K). 当K=1时,上面的算法的时间复杂度也是O(N*logN),上面的算法是把整个数组都进行了排序,而
2014-06-22 11:06:04
671
转载 C++学习之Pair
Pair类型概述pair是一种模板类型,其中包含两个数据值,两个数据的类型可以不同,基本的定义如下:pair a;表示a中有两个类型,第一个元素是int型的,第二个元素是string类型的,如果创建pair的时候没有对其进行初始化,则调用默认构造函数对其初始化。pair a("James", "Joy");也可以像上面一样在定义的时候直接对其初始化。由于pair类型的使用比
2014-05-25 19:39:55
442
转载 C++ 智能指针详解
文章出处:http://blog.youkuaiyun.com/xt_xiaotian/article/details/5714477一、简介由于 C++ 语言没有自动内存回收机制,程序员每次 new 出来的内存都要手动 delete。程序员忘记 delete,流程太复杂,最终导致没有 delete,异常导致程序过早退出,没有执行 delete 的情况并不罕见。用智能指针便可以有效缓解这类问题
2014-04-28 23:36:58
456
转载 printf("%d",5.01)和printf("%f",5)的输出结果
出处:http://blog.youkuaiyun.com/fengyunjh/archive/2011/03/07/6230164.aspx
2014-04-27 20:52:33
882
转载 LINK : fatal error LNK1123: failure during conversion to COFF: file invalid or corrupt
LINK : fatal error LNK1123: failure during conversion to COFF: file invalid or corrupt解决方法:项目-->工程属性->配置属性-> 清单工具->输入和输出->嵌入清单,选择[否] ----------->只要设这个就可以了
2014-04-26 19:30:06
754
转载 关于数组的几道面试题
原文地址:http://blog.youkuaiyun.com/hackbuteer1/article/details/80352611、快速找出一个数组中的最大数、第二大数。
2014-04-25 00:03:25
495
原创 在vector中添加元素的方法
可以用一个vector的下标操作添加元素,但是如果是空的vector就不能用下标进行添加。例如 :vector ivec //ivec是一个空的容器。 for(vector ::size_type ix = 0; ix !=10;++ix ) ive
2014-04-21 21:52:47
12513
转载 用位运算实现两个整数的加减乘除运算
位运算的思想可以应用到很多地方,这里简单的总结一下用位运算来实现整数的四则运算。.整数加法[cpp] view plaincopyint Add(int a,int b) { for(int i = 1; i; i if(b & i) for(int j = i; j; j
2014-04-10 21:47:31
479
转载 精讲C++中的const
1、什么是const?常类型是指使用类型修饰符const说明的类型,常类型的变量或对象的值是不能被更新的。(当然,我们可以偷梁换柱进行更新:)2、为什么引入const? const 推出的初始目的,正是为了取代预编译指令,消除它的缺点,同时继承它的优点。3、cons有什么主要的作用?(1)可以定义const常量,具有不可变性。 例如:
2014-04-08 11:46:28
423
原创 c++中的static_cast的用法
用法:static_cast ( expression ) 该运算符把expression转换为type-id类型,但没有运行时类型检查来保证转换的安全性。它主要有如下几种用法: ①用于类层次结构中基类(父类)和派生类(子类)之间指针或引用的转换。 进行上行转换(把派生类的指针或引用转换成基类表示)是安全的; 进行下行转换(把基类指针或引用转换成派生类表示
2014-04-08 11:14:27
706
原创 写一个函数,完成内存之间的拷贝
方法一:void* mymemcpy( void *dest, const void *src, size_t count ){ char* pdest = static_cast( dest ); const char* psrc = static_cast( src ); if( pdest>psrc && pdest/*这种情况的话(把
2014-04-08 11:08:42
562
原创 c++中关于sizeof的用法
char* ss = "0123456789"; sizeof(ss) 结果4 ===》ss是指向字符串常量的字符指针 sizeof(*ss) 结果1 ===》*ss是第一个字符 charss[] = "0123456789"; sizeof(ss)结果11 ===》ss是数组,计算到\0位置,因此是10+1 sizeof(*ss) 结果1 ===》*ss是第一个字符
2014-04-07 17:08:08
831
原创 vector中的成员函数
vector是线性容器,它的元素严格的按照线性序列排序,和动态数组很相似,和数组一样,它的元素存储在一块连续的存储空间中,这也意味着我们不仅可以使用迭代器(iterator)访问元素,还可以使用指针的偏移方式访问,和常规数组不一样的是,vector能够自动存储元素,可以自动增长或缩小存储空间,vector的优点:1. 可以使用下标访问个别的元素2.
2014-04-05 21:05:26
431
原创 c++中的五大内存分配!
在C++中,内存分成5个区,他们分别是堆、栈、自由存储区、全局/静态存储区和常量存储区。1、栈,就是那些由编译器在需要的时候分配,在不需要的时候自动清楚的变量的存储区。里面的变量通常是局部变量、函数参数等/2、堆,就是那些由new分配的内存块,他们的释放编译器不去管,由我们的应用程序去控制,一般一个new就要对应一个delete。如果程序员没有释放掉,那么在程序结束后,操作系统会自动回
2014-04-04 14:17:40
367
原创 memset
1、将s所指向的某一块内存中的前n个 字节的内容全部设置为ch指定的ASCII值, 块的大小由第三个参数指定,这个函数通常为新申请的内存做初始化工作, 其返回值为指向S的指针。
2014-04-04 14:07:01
881
原创 strcpy和memcpy的区别
strcpy和memcpy都是标准C库函数,它们有下面的特点。strcpy提供了字符串的复制。即strcpy只用于字符串复制,并且它不仅复制字符串内容之外,还会复制字符串的结束符。已知strcpy函数的原型是:char* strcpy(char* dest, const char* src);memcpy提供了一般内存的复制。即memcpy对于需要复制的内容没有限制,因此用途更广。
2014-04-04 13:59:19
301
原创 c语言库函数:memcpy
1、函数原型:void *memcpy(void *dest, const void *src, size_t n);
2014-04-04 13:57:26
427
原创 c++中的const 成员函数
const修饰符能修饰类的成员函数而不能修饰普通的自定义函数,类的成员函数加上了const修饰符后它用两个作用,1:在该函数内不允许对类的私有数据成员进行修改,2:当声明了一个const的该类对象时,该对象只能调用该类的const成员函数而不能调用非const成员函数.如果声明一个非const的该类对象,该对象既可以调用const成员函数也可以调用非const成员函数
2014-04-01 20:41:45
358
原创 c++中const 的用法
面向对象是C++的重要特性. 但是c++在c的基础上新增加的几点优化也是很耀眼的 就const直接可以取代c中的#define 以下几点很重要,学不好后果也也很严重 !const 1. 限定符声明变量只能被读 const int i=5; int j=0; i=j; //非法,导致编译错误 j=i; //合法 2. 必须初始化
2014-03-29 00:08:05
426
原创 拷贝构造函数
1、拷贝构造函数具有一般构造函数的所有特性,其形参是本类的对象的引用。其作用是使用一个已经存在的对象,去初始化同类的一个新对象。如果程序中没有定义类的拷贝构造函数,系统就会在必要是自动生成一个默认的拷贝构造函数,这个默认的拷贝构造函数的功能是,把初始值对象的每个数据成员的值都复制到新建的对象中。2、拷贝构造函数在一下三种情况下会被调用: (1):当用类的一个对象去初始化该类的另一对象时
2014-03-20 21:41:32
403
原创 关于*iter++的含义
如果对c语言和c++不熟悉的经常会不清楚表达式*iter++的含义。首先由于后自增操作的优先级高于解引用操作,因此*iter++等效于*(iter++)。子表达式iter++使iter加1,然后返回iter原值的副本作为该表达式的结果。因此解引用操作*的操作数是iter未加1前的副本~!
2014-03-17 21:40:29
1913
原创 c++primer随笔
处理长字符串有一个更基本的方法,这个方法依赖于很少使用的程序格式化特征:在一行的末尾加一个反斜杠符号,可将此行和下一行当作同一行处理。但是,反斜杠符号必须是改行的尾字符,————不允许在其后面有注释和空格。同样后继行行首的任何空格和制表符都是字符串字面值的一部分。用处:在一个单词中间插入空格!
2014-03-10 20:37:32
486
原创 学习OpenCV_3:关于openCV的配置
关于配置OpenVC,网上有很多教程!大家先下载好VS2010 和OpenVC的安装包。根据网上的教程配置。链接:http://www.cnblogs.com/freedomshe/archive/2012/04/25/2470540.html需要注意的地方:1、环境变量配置时。注意一下路径的设置! 2、一般只需要配置debug,
2014-03-07 11:21:21
488
原创 学习openCV_2:OpenCV常用的六个函数(I/O)
1. 图像载入函数函数cvLoadImage载入指定图像文件,并返回指向该文件的IplImage指针。函数支持bmp、jpg、 png、 tiff等格式的图像。其函数原型如下:IplImage* cvLoadImage( const char* filename, int iscolor);其中,filename 是待载入图像的名称,包括图像的扩展名;iscolor是一个辅助参数项
2014-03-07 11:08:00
645
转载 学习openCV_1:关于通道和灰度的解释
关于通道的解释:1、比较通俗易懂的解释是:灰度图的通道数为1,彩色图的通道为3。基本上,描述一个像素点,如果是灰度,那么只需要一个数值来描述它,就是单通道。如果一个像素点,有RGB三种颜色来描述它,就是三通道。2、4通道通常为RGBA,在某些处理中可能会用到。2通道图像不常见,通常在程序处理中会用到,如傅里叶变换,可能会用到,一个通道为实数,一个通道为虚数,主要是编程方便。还有
2014-03-07 10:42:08
3018
原创 c++中的explicit
在C++程序中很少有人去使用explicit关键字,不可否认,在平时的实践中确实很少能用的上。再说C++的功能强大,往往一个问题可以利用好几种C++特性去解决。但稍微留心一下就会发现现有的MFC库或者C++标准库中的相关类声明中explicit出现的频率是很高的。了解explicit关键字的功能及其使用对于我们阅读使用库是很有帮助的,而且在编写自己的代码时也可以尝试使用。既然C++语言提供这种特性
2014-03-06 14:06:50
463
原创 c++中的句柄!
怕自己忘记了,摘录下来,随时看看。1.句柄是什么? 在windows中,句柄是和对象一一对应的32位无符号整数值。对象可以映射到唯一的句柄,句柄也可以映射到唯一的对象。2.为什么我们需要句柄? 更准确地说,是windows需要句柄。windows需要向程序员提供必要地编程接口,在这些接口中,允许程序员访问、创建和销毁对象。但是,出于封装地考虑,windo
2014-03-05 16:08:50
1401
转载 分治法
实现方法:我们定义一个支持方法Mul(String s1,String s2),用于在结束递归时(在本例中,我定义有一个数是1位时结束递归,直接用普通乘法)计算两个字符串的乘积(为了表示大数,用字符串来接受参数)。有了这个支持方法,分治递归实现两个大数乘法的实现如下:public static long Mutiply(String a,String b)//用字符串读入2个大整数
2014-02-19 23:33:03
447
PHP大马过狗代码.php
2020-05-31
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人