- 博客(170)
- 资源 (9)
- 收藏
- 关注
转载 C++算法之 合并两个有序链表
题目:合并两个已经排序好的链表方法1:两个链表 比如链表1: 1->3->5->7->9 链表2: 2->4->6->8->10 跟我们合并两个数组一样,链表1的头结点 和链表2的头节点比较,如果链表1头节点的值大于链表2头接点的值, 那么链表2的头结点为合并链表的头结点,那么链表1的头节点继续和链表2的第二个节点(剩余链表2的头结点)
2015-04-15 10:17:03 1480
转载 C++的重写,重载,重定义
1. 重写 (override): 父类与子类之间的多态性。子类重新定义父类中有相同名称和参数的虚函数。1) 被重写的函数不能是 static 的。必须是 virtual 的,或者是 override 的 ( 即函数在最原始的基类中被声明为 virtual , c++ 中没有 override) 。2) 重写函数必须有相同的类型,名称和参数列表 (即相同的函数原型
2015-04-14 21:07:34 791
转载 string类的构造函数,析构函数,拷贝构造函数和赋值构造函数
//MyString.h#include cstddef>//定义宏NUL的头文件#include QObject>#include iostream>//#include cstdio>#include string.h>using namespace std;class String{public:
2015-04-13 22:05:47 1072
转载 Malloc与new的区别(二)
1,malloc与free是C++/C语言的标准库函数,new/delete是C++的运算符。它们都可用于申请动态内存和释放内存。2,对于非内部数据类型的对象而言,光用maloc/free无法满足动态对象的要求。对象在创建的同时要自动执行构造函数,对象在消亡之前要自动执行析构函数。由于malloc/free是库函数而不是运算符,不在编译器控制权限之内,不能够把执行构造函数和析构函数的任务强
2015-04-06 21:53:37 572
转载 new和malloc的区别(一)
1. malloc()函数1.1 malloc的全称是memory allocation,中文叫动态内存分配。原型:extern void *malloc(unsigned int num_bytes); 说明:分配长度为num_bytes字节的内存块。如果分配成功则返回指向被分配内存的指针,分配失败返回空指针NULL。当内存不再使用时,应使用free()函数将内存块释放。1.
2015-04-06 21:50:52 533
转载 联合体(共同体)union V{...}v;
void test (){ union V { struct X { unsigned char s1:2; // :2 指 占两个字符? 是两个bit。若是int 占多少? unsigned char s2:3; u
2015-04-06 21:32:10 733
转载 static全局变量与普通的全局变量有什么区别?static局部变量和普通局部变量有什么区别?static函数与普通函数有什么区别?
C语言中讲讲static变量和static函数有什么作用static关键字有两种意思,你看上下文来判断1,表示变量是静态存储变量 表示变量存放在静态存储区. 2,表示该变量是内部连接 (这种情况是指该变量不在任何{}之内,就象全局变量那样,这时候加上static) ,也就是说在其它的.cpp文件中,该变量是不可见的(你不能用).当static加在函数前面的时候
2015-04-05 21:26:37 630
转载 STL中vector、list、deque和map的区别
1 vector 向量 相当于一个数组 在内存中分配一块连续的内存空间进行存储。支持不指定vector大小的存储。STL内部实现时,首先分配一个非常大的内存空间预备进行存储,即capacituy()函数返回的大小,当超过此分配的空间时再整体重新放分配一块内存存储,这给人以vector可以不指定vector即一个连续内存的大小的感觉。通常此默认的内存分配能完成大部分情况下的存储。
2015-04-05 13:42:32 684
转载 C++:STL标准入门汇总
学无止境!!!第一部分:(参考百度百科) 一、STL简介STL(Standard Template Library,标准模板库)是惠普实验室开发的一系列软件的统称。它是由Alexander Stepanov、Meng Lee和David R Musser在惠普实验室工作时所开发出来的。现在虽说它主要出现在C++中,但在被引入C++之前该技术就已经存在了很长的一段
2015-04-05 10:54:45 514
转载 Windows Socket编程
一、基于TCP(面向连接)的socket编程服务器端程序:1、创建套接字(socket)。2、将套接字绑定到一个本地地址和端口上(bind)。3、将套接字设为监听模式,准备接受客户请求(listen)。4、等待客户请求到来;当请求到来后,接受连接请求,返回一个新的对应于此次连接的套接字(accept)。5、用返回的套接字和客户端进行通信(send/recv)。6、返回,
2015-01-23 22:28:13 569
转载 同步和异步、阻塞和非阻塞
同步和异步、阻塞和非阻塞首先说明我对这些概念也不是很清楚,以下内容是我做的一些理事。同步和异步、阻塞和非阻塞这是两组概念,说的是不同的事情,同步和阻塞没有必然的联系,异步和非阻塞也没有必然的联系。同步和异步是只跟IO操作过程中进程的状态变化有关。阻塞和非阻塞就是进程的两种状态。比如你去银行,排除的话就是一种同步的方式,叫号的话就是异步的方式。排队必须自己看着什么时候轮到自己,而叫号
2015-01-23 22:26:29 649
转载 PHP中$_FILES的使用及注意事项
$_FILES: 经由 HTTP POST 文件上传而提交至脚本的变量。类似于旧数组 $HTTP_POST_FILES 数组(依然有效,但反对使用)。详细信息可参阅 POST 方法上传。$_FILES数组内容如下: $_FILES['myFile']['name'] 客户端文件的原名称。 $_FILES['myFile']['type'] 文件的 MIME 类型,需要浏览器提供
2015-01-21 17:02:53 674
转载 php 函数合并 array_merge 与 + 的区别
php 函数合并 array_merge 与 + 的区别array_merge()是PHP语言中的一个函数,作用是将两个或多个数组的单元合并起来,一个数组中的值附加在前一个数组的后面。返回作为结果的数组。如果输入的数组中有相同的字符串键名,该键的键值为最后一个键名对应的值(后面的值覆盖前面相同的值)。如果数组是数字键名的,则键名会以连续方式重新索引,即后面的值将不会覆盖
2014-12-19 11:34:45 588
转载 dataTables-使用详细说明整理
本文共四部分:官网 | 基本使用|遇到的问题|属性表一:官方网站:[http://www.datatables.net/]二:基本使用:[http://www.guoxk.com/node/jquery-datatables]1、DataTables的默认配置$(document).ready(function() {$('#example').dataTabl
2014-12-17 16:44:01 985
转载 css中选择器
选择器描述[attribute] 用于选取带有指定属性的元素。 [attribute=value] 用于选取带有指定属性和值的元素。 [attribute~=value] 用于选取属性值中包含指定词汇的元素。 [attribute|=value] 用于选取带有以指定值开头的属性值的元素,该值必须是整个单词。 [
2014-12-17 09:07:25 567
转载 JQuery判断数组中是否包含某个元素$.inArray("js", arr);
var arr = [ "xml", "html", "css", "js" ]; $.inArray("js", arr); //返回 3,如果不包含在数组中,则返回 -1;
2014-12-12 17:15:04 659
转载 jquery获取复选框checkbox的值
jQuery API :each(callback) :以每一个匹配的元素作为上下文来执行一个函数。 :checked :匹配所有选中的被选中元素(复选框、单选框等,不包括select中的option) js://js获取复选框值 var obj = document.getElementsByName("inte
2014-12-12 16:59:54 2061
转载 构造函数定义为private,protected
将构造函数,析构函数声明为私有和保护的,那么对象如何创建?已经不能从外部调用构造函数了,但是对象必须被构造,应该如何解决,麻烦大家帮忙说明,关于构造,析构函数声明为私有和保护时的用法??? 提出这个问题,说明你已经对c++有所思考了。从语法上来讲,一个函数被声明为protected或者private,那么这个函数就不能从“外部”直接被调用了。对于protected的函数,子类的“
2014-11-22 20:37:50 606
转载 在c++中如何阻止类被继承
这个话题是源自于一个面试题,我在网上查了一下有不少这方面的解说!我自己整理了一下,选择了一个自认为是最优方案!我们从最简单的开始:首先,大家都知道要阻止类被实例化,可以通过使用private or protected 关键字来声明默认构造函数。那么在阻止类被继承的时候,我们需要用到这个技巧。其次,阻止类被继承还需要使用private来控制继承的基类。namespace Sample
2014-11-22 17:33:30 3394
转载 钻石继承与虚继承
首先,何为钻石继承,顾名思义,在类的继承过程中,继承结构是一个类似菱形(钻石)的结构就属于钻石继承,如下: 这是一个最简单的钻石继承。实际上,在复杂的继承表中,只要子类按不同的继承路径回溯到基类有菱形结构,均属钻石继承。下面先看一个例子,钻石继承在C++程序设计中带来的问题。
2014-11-22 15:35:13 629
转载 线程与进程的联系,线程的优缺点。
进程概念 进程是表示资源分配的基本单位,又是调度运行的基本单位。例如,用户运行自己的程序,系统就创建一个进程,并为它分配资源,包括各种表格、内存空间、磁盘空间、I/O设备等。然后,把该进程放人进程的就绪队列。进程调度程序选中它,为它分配CPU以及其它有关资源,该进程才真正运行。所以,进程是系统中的并发执行的单位。 在Mac、Windows NT等采用微内核结构的操作系统中,进程的功
2014-11-20 22:53:38 638
转载 C++的参数传递机制
C++的参数传递机制 C++一共有三种传递方式:值传递(pass by value)、指针传递(pass by pointer)、引用传递(pass by reference)。关键点:在函数中,编译器总是要为函数的每个参数制作临时副本。引用传递除外。一.值传递。值传递很简单。唯一要注意的就是当值传递的输入参数是用户自定义类型时,最好用引用传递代替,并加上const关键字。
2014-11-20 22:05:12 2119
转载 为什么使用多线程?
1.耗时的操作使用线程,提高应用程序响应2.并行操作时使用线程,如C/S架构的服务器端并发线程响应用户的请求。3.多CPU系统中,使用线程提高CPU利用率4.改善程序结构。一个既长又复杂的进程可以考虑分为多个线程,成为几个独立或半独立的运行部分,这样的程序会利于理解和修改。 使用多线程的理由之一是和进程相比,它是一种非常花销小
2014-11-20 20:47:21 636
转载 统计在从1到n的正整数中1出现的次数
问题:给定一个十进制正整数N,写下从1开始,到N的所有整数,然后数一下其中出现的所有“1”的个数。例如:N= 2,写下1,2。这样只出现了1个“1”。N= 12,我们会写下1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12。这样,1的个数是5。问题一:写一个函数f(N),返回1到N之间出现1的个数,比如f(12)= 5。解法一
2014-11-20 19:49:39 907
转载 如何减少频繁分配内存(malloc或者new)造成的内存碎片?
内存池(Memory Pool)是一种内存分配方式。 通常我们习惯直接使用new、malloc等API申请分配内存,这样做的缺点在于:由于所申请内存块的大小不定,当频繁使用时会造成大量的内存碎片并进而降低性能。内存池则是在真正使用内存之前,先申请分配一定数量的、大小相等(一般情况下)的内存块留作备用。当有新的内存需求时,就从内存池中分出一部分内存块,若内存块不够再继续申请新的内存。这样做的一个显著
2014-11-18 22:08:42 2350
转载 sizeof
在腾讯的面试中,问了个关于C++中空类的大小和虚表指针(vptr)的问题。以下内容来自:http://hi.baidu.com/gengshenspirit/blog/item/55c4f2ca7f23c041f31fe743.html 初学者在学习面向对象的程序设计语言时,或多或少的都些疑问,我们写的代码与最终生编译成的代码却 大相径庭,我们并不知
2014-11-18 19:04:32 611
转载 输入一行字符串,找出其中重复出现且最长的字符串,输出它及其首字符的位置
1、问题 输入一行字符串,找出其中出现的相同且长度最长的字符串,输出它。 2、解析 例如“yyabcdabjcabceg”,输出应该为abc和3。 可以将字符串yyabcdabjcabceg分解成如下子串 yyabcdabjcabceg yabcdabjcabceg
2014-11-17 21:21:54 5375
原创 C++ string中find() ,rfind() 函数
string a="abacvvabccd";int n=a.find("ab");int m=a.rfind("ab");
2014-11-17 20:59:31 3031
转载 求字符串中连续出现次数最多的子串
#include#include #include #include using namespace std;pair fun(const string &str){vector substrs;int maxcout=1,count =1;string substr;int i,len = str.length();for(i =0;i
2014-11-17 19:18:45 748
转载 break与continue的用法区别
一般说来,程序进入循环体后在下次循环判断之前执行循环体里的所有语句,break和continue语句可以终止循环或忽略某些循环。break: 此语句导致程序终止包含它的循环,并进行程序的下一阶段(整个循环后面的语句),即,不是跳到下一个循环周期而是退出循环。如果break语句包含在嵌套循环里,它只跳出最里面的循环。[cpp] view plaincopy
2014-11-16 17:13:48 707
转载 break、continue和return在编程中的作用
1、return 语句的作用 (1) return 从当前的方法中退出,返回到该调用的方法的语句处,继续执行 (2) return 返回一个值给调用该方法的语句,返回值的数据类型必须与方法的声明中的返回值的类型一致,可以使用强制类型转换来是数据类型一致 (3) return 当方法说明中用void声明返回类型为空时,应使用这种格式,不返回任何值。
2014-11-16 17:07:00 1906
转载 strlen与sizeof的区别
sizeof返回对象所占用的字节大小. //正确strlen返回字符个数. //正确--------------------1.sizeof操作符的结果类型是size_t,它在头文件中typedef为unsigned int类型。该类型保证能容纳实现所建立的最大对象的字节大小。strlen()是返回字符个数,且,这个个数应该是遇到null或'\0'之前的字符个数。
2014-11-16 16:16:58 641
原创 关于字符数组的初始化
字符数组可以在定义时进行初始化.有两种初始化方法.方法1:逐个字符赋给数组中各元素.这种方法最容易理解.例如:char c[5]={ 'H','a','p','p','y' };把5个字符分别赋给c[0]至c[4].以下是几点说明:(1) 如果大括号内提供的初值个数(即字符个数)大于数组长度,则编译时将出错.如果初值个数小于数组长度,则只将这些字符赋给前面的数组元素,其
2014-11-16 15:44:28 3827
转载 STRCPY,MEMSET,MEMCPY三者的区别
memset用来对一段内存空间全部设置为某个字符,一般用在对定义的字符串进行初始化为‘ '或‘/0';例:char a[100];memset(a, '/0', sizeof(a)); memcpy用来做内存拷贝,你可以拿它拷贝任何数据类型的对象,可以指定拷贝的数据长度;例:char a[100],b[50]; memcpy(b, a, sizeof(b));注意如用sizeof(a)
2014-11-16 10:41:26 644
转载 字符串循环右移n位,函数
编写一个函数,作用是把一个 char 组成的字符串循环右移 n 个。比如原来是“abcdefghi”如果 n=2,移位后应该是“hiabcdefgh” 函数头是这样的: //pStr 是指向以'\0'结尾的字符串的指针 //steps 是要求移动的 n void LoopMove ( char * pStr, int steps ) { //请填充...
2014-11-15 10:40:24 2926
转载 strcpy和memcpy的区别
strcpy和memcpy的区别strcpy和memcpy都是标准C库函数,它们有下面的特点。strcpy提供了字符串的复制。即strcpy只用于字符串复制,并且它不仅复制字符串内容之外,还会复制字符串的结束符。已知strcpy函数的原型是:char* strcpy(char* dest, const char* src);memcpy提供了一般内存的复制。即memcpy对于需
2014-11-15 10:16:37 524
转载 c++中不能重载的运算符
算术运算符:+,-,*,/,%,++,--;位操作运算符:&,|,~,^(位异或),<<(左移),>>(右移)逻辑运算符:!,&&,||;比较运算符:<,>,>=,<=,==,!=;赋值运算符:=,+=,-=,*=,/=,%=,&=,|=,^=,<<=,>>=;其他运算符:[],(),->,,(逗号运算符),new,delete,new[],delete[],->*。
2014-11-12 21:53:48 879
转载 浅谈C++多态性
C++编程语言是一款应用广泛,支持多种程序设计的计算机编程语言。我们今天就会为大家详细介绍其中C++多态性的一些基本知识,以方便大家在学习过程中对此能够有一个充分的掌握。 多态性可以简单地概括为“一个接口,多种方法”,程序在运行时才决定调用的函数,它是面向对象编程领域的核心概念。多态(polymorphisn),字面意思多种形状。 C++多态性是通过虚函数来实现的,虚函数允许子类重新定
2014-11-12 10:42:44 482
转载 二叉树的深度优先遍历和广度优先遍历
深度优先搜索算法(Depth First Search),是搜索算法的一种。是沿着树的深度遍历树的节点,尽可能深的搜索树的分支。当节点v的所有边都己被探寻过,搜索将回溯到发现节点v的那条边的起始节点。这一过程一直进行到已发现从源节点可达的所有节点为止。如果还存在未被发现的节点,则选择其中一个作为源节点并重复以上过程,整个进程反复进行直到所有节点都被访问为止。如右图所示的
2014-11-11 21:53:09 614
转载 进程与线程及其区别
1.进程和线程1.1 概述:进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源分配和调度的一个独立单位.线程是进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位.线程自己基本上不拥有系统资源,只拥有一点在运行中必不可少的资源(如程序计数器,一组寄存器和栈),但是它可与同属一个进程的其他的线程共享进程所拥有的全部资源.一个
2014-11-09 22:27:45 591
基于角色权限访问控制管理系统
2012-10-31
家庭视频监控系统
2012-10-11
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人