- 博客(49)
- 资源 (1)
- 收藏
- 关注
转载 C/C++函数参数的入栈顺序,计算顺序和可变参数的实现
函数参数入栈顺序[cpp] view plaincopy#include void foo(int x, int y, int z) { printf("x = %d at [%X]\n", x, &x); printf("y = %d at [%X]\n", y, &y);
2016-01-19 23:48:10
728
转载 C++中的单例模式
如果采用全局或者静态变量的方式,会影响封装性,难以保证别的代码不会对全局变量造成影响。1.懒汉式是以时间换空间的方式。2.饿汉式是以空间换时间的方式。懒汉式懒汉式的特点是延迟加载,比如配置文件,采用懒汉式的方法,顾名思义,懒汉么,很懒的,配置文件的实例直到用到的时候才会加载。。。。。。?123
2016-01-19 22:57:35
457
转载 程序结束时,动态内存会释放吗
1 从C语言本身设计来说,不会释放。所谓动态内存,是由malloc系列函数进行申请的内存,除非在程序中使用free释放,否则该段内存不会被释放掉。从这个角度来说,即使进程结束,该段内存也会被占用。这种现象被称为内存泄露。2 大多数操作系统可以智能释放。动态内存由于是进程使用,向操作系统控制方申请的内存,所以操作系统内核可以记录哪些内存由哪个进程使用,这样为了减少内存泄露的危害,操作
2016-01-19 22:47:34
8378
转载 当C++指向对象的指针被赋值为NULL,对象那些函数可以运行?
当C++指向对象的指针被赋值为NULL,对象那些函数可以运行?——源自一道笔试选择题:当程序如下时可以运行[cpp] view plaincopy"font-size:24px;">// 3fun.cpp : Defines the entry point for the console application.
2016-01-15 20:50:55
2607
转载 Wiggle Sort
Wiggle SortGiven an unsorted array nums, reorder it in-place such that nums[0] = nums[2] For example, given nums = [3, 5, 2, 1, 6, 4], one possible answer is [1, 6, 2, 5, 3, 4].排序法复杂
2016-01-03 16:00:03
496
转载 每天一个linux命令(4):awk 命令的参数详解
awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大。简单来说awk就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再进行各种分析处理。awk有3个不同版本: awk、nawk和gawk,未作特别说明,一般指gawk,gawk 是 AWK 的 GNU 版本。awk其名称得自于它的创始人 Alfred Aho
2015-12-07 18:45:35
1858
原创 找零钱
有数组penny,penny中所有的值都为正数且不重复。每个值代表一种面值的货币,每种面值的货币可以使用任意张,再给定一个整数aim(小于等于1000)代表要找的钱数,求换钱有多少种方法。给定数组penny及它的大小(小于等于50),同时给定一个整数aim,请返回有多少种方法可以凑成aim。测试样例:[1,2,4],3,3返回:2class Exchange {pu
2015-12-05 19:13:14
891
转载 最少硬币找零问题-动态规划
动态规划把问题分为子为题,解决了这些子问题,再把子问题合并起来,便可以得到问题的解。在解决子问题过程中,需要把子问题的解保存起来方便后面使用。最少硬币找零问题为:给予不同面值的硬币若干种种(每种硬币个数无限多),用若干种硬币组合为某种面额的钱,使硬币的的个数最少。在现实生活中,我们往往使用的是贪心算法,比如找零时需要13元,我们先找10元,再找2元,再找1元。这是因为现实生活中的硬
2015-12-05 19:05:31
4079
转载 动态创建二维vector数组
二维vectorvector > ivec(m ,vector(n)); //m*n的二维vector动态创建m*n的二维vector方法一:vector > ivec;ivec.resize(m);for(int i=0;i方法二:vector > ivec;ivec.resize(m,vector(n));动态创建二维数组a[m][n]
2015-12-05 18:48:41
462
转载 每天一个linux命令(3):last命令
命令简介: 该命令用来列出目前与过去登录系统的用户相关信息。指令英文原义:show listing of last logged in users 执行权限 :有些需要特殊权限 指令所在路径:/usr/bin/last 执行last指令时,它会读取位于/var/log目录下名称为wtmp的文件,并把该给文件的内容记录的登录系统的用户名
2015-12-01 18:27:17
746
转载 每天一个linux命令(2):sort 命令
sort是在Linux里非常常用的一个命令,管排序的,集中精力,五分钟搞定sort,现在开始!1 sort的工作原理 sort将文件的每一行作为一个单位,相互比较,比较原则是从首字符向后,依次按ASCII码值进行比较,最后将他们按升序输出。[rocrocket@rocrocket programming]$ cat seq.txtbananaapplep
2015-12-01 18:25:17
1050
转载 每天一个linux命令(1):free 命令
free命令可以显示Linux系统中空闲的、已用的物理内存及swap内存,及被内核使用的buffer。在Linux系统监控的工具中,free命令是最经常使用的命令之一。1.命令格式:free [参数]2.命令功能:free 命令显示系统使用和空闲的内存情况,包括物理内存、交互区内存(swap)和内核缓冲区内存。共享内存将被忽略3.命令参数:-b 以
2015-12-01 18:17:34
386
转载 MATLAB学习
========================BasicOperations========================>> A=rand(3,2) A = 0.8147 0.9134 0.9058 0.6324 0.1270 0.0975 >> A=[1 2;3 4;5 6]
2015-11-14 23:39:08
499
原创 ip地址与整数之间的转换
比如 A.B.C.D的换成整数就是:(((A*256)+B)*256+C)*256+D整数转IP:1409823698 = 540833D2 H => 以字节分解: 54H 08H 33H D2H => 转回10进制: 84 08 51 210bool is_Invalid = false;int IPtoINT(string s){ int result = 0;
2015-11-14 21:09:30
474
转载 每天一个linux命令(2):wget命令
Linux系统中的wget是一个下载文件的工具,它用在命令行下。对于Linux用户是必不可少的工具,我们经常要下载一些软件或从远程服务器恢复备份到本地服务器。wget支持HTTP,HTTPS和FTP协议,可以使用HTTP代理。所谓的自动下载是指,wget可以在用户退出系统的之后在后台执行。这意味这你可以登录系统,启动一个wget下载任务,然后退出系统,wget将在后台执行直到任务完成,相对于其它大
2015-11-09 23:20:30
468
转载 每日一linux命令(1):sort命令
linux之sort用法sort命令是帮我们依据不同的数据类型进行排序,其语法及常用参数格式: sort [-bcfMnrtk][源文件][-o 输出文件] 补充说明:sort可针对文本文件的内容,以行为单位来排序。参 数: -b 忽略每行前面开始出的空格字符。 -c 检查文件是否已经按照顺序排序。 -f 排序时,忽略大小写
2015-11-08 22:20:05
409
转载 海量数据处理
第一部分、十道海量数据处理面试题1、海量日志数据,提取出某日访问百度次数最多的那个IP。 首先是这一天,并且是访问百度的日志中的IP取出来,逐个写入到一个大文件中。注意到IP是32位的,最多有个2^32个IP。同样可以采用映射的方法,比如模1000,把整个大文件映射为1000个小文件,再找出每个小文中出现频率最大的IP(可以采用hash_map进行频率统计,然后再找出频率
2015-11-03 23:49:24
336
转载 Linux常用命令大全
系统信息 arch 显示机器的处理器架构(1) uname -m 显示机器的处理器架构(2) uname -r 显示正在使用的内核版本 dmidecode -q 显示硬件系统部件 - (SMBIOS / DMI) hdparm -i /dev/hda 罗列一个磁盘的架构特性 hdparm -tT /dev/sda 在磁盘上执行测试性读取操作 cat /proc/cpui
2015-11-03 23:44:17
435
转载 python3 与 python2的 区别比较
1.性能 Py3.0运行 pystone benchmark的速度比Py2.5慢30%。Guido认为Py3.0有极大的优化空间,在字符串和整形操作上可 以取得很好的优化结果。 Py3.1性能比Py2.5慢15%,还有很大的提升空间。 2.编码 Py3.X源码文件默认使用utf-8编码,这就使得以下代码是合法的: >>> 中国 = 'china' >>>
2015-11-03 23:28:52
383
转载 字符编码笔记:ASCII,Unicode和UTF-8
1. ASCII码我们知道,在计算机内部,所有的信息最终都表示为一个二进制的字符串。每一个二进制位(bit)有0和1两种状态,因此八个二进制位就可以组合出256种状态,这被称为一个字节(byte)。也就是说,一个字节一共可以用来表示256种不同的状态,每一个状态对应一个符号,就是256个符号,从0000000到11111111。上个世纪60年代,美国制定了一套字符编码,对英语字符与
2015-11-03 23:19:15
417
转载 python中if __name__ == '__main__': 的解析
当你打开一个.py文件时,经常会在代码的最下面看到if __name__ == '__main__':,现在就来介 绍一下它的作用. 模块是对象,并且所有的模块都有一个内置属性 __name__。一个模块的 __name__ 的值取决于您如何应用模块。如果 import 一个模块,那么模块__name__ 的值通常为模块文件名,不带路径或者文件扩展名。但是您也可以像一个标准的
2015-11-03 20:15:46
334
原创 微策略笔试题
1 堆栈的区别,优劣,以及栈最多层次 一、预备知识—程序的内存分配 一个由C/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其 操作方式类似于数据结构中的栈。 2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回
2015-10-21 23:56:30
1255
原创 素数的个数统计
1.从C语言的语法设计来说是不支持的,早期的C编译器未考虑过函数重载这一功能,所以就会有那么多类似的函数abs,labs,fabs等等(每种类型都要考虑一个不同的函数名)。2.C语言标准就规定不允许同一作用域中两个函数重名。和C语言相关的域有两种,一个是给编译器看得,还有一种是给链接器看的,而给编译器看的这种域主要是关于变量的可见范围,而链接器看到的那个是叫文件域,而全局域可能要跨越好几个
2015-10-21 00:47:10
2286
转载 完全二叉树的判断
bool is_complete(Tree *root){queue q;Tree *ptr;// 进行广度优先遍历(层次遍历),并把NULL节点也放入队列q.push(root);while ((ptr = q.pop()) != NULL){q.push(ptr->left);q.push(ptr->right);}// 判断是否还有未被访问
2015-10-16 21:28:48
411
转载 死锁
产生死锁的原因主要是:(1) 因为系统资源不足。(2) 进程运行推进的顺序不合适。(3) 资源分配不当等。产生死锁的四个必要条件:(1)互斥条件:一个资源每次只能被一个进程使用。(2)请求与保持条件:一个进程因请求资源而阻塞时,对已获得的资源保持不放。(3)不可剥夺条件:进程已获得的资源,在末使用完之前,不能强行剥夺。(4)循环等待条件:若干进程之间形成一种头尾相接
2014-04-28 21:41:50
511
原创 字串查找
给定一个字符串A,要求在A中查找一个子串B。如A="ABCDF",要你在A中查找子串B=“CD”。char *strstr(const char *strSrc, const char *str) { assert(strSrc != NULL && str != NULL); const char *s = strSrc;
2014-04-25 20:21:32
498
原创 重建二义树
BinaryTreeNode* Construct(int* preorder, int* inorder, int length){ if(preorder == NULL || inorder == NULL || length return NULL; return ConstructCore(preorder, preorder + length
2014-04-25 19:43:16
424
转载 malloc/free与new/delete的区别
相同点:都可用于申请动态内存和释放内存不同点:(1)操作对象有所不同。malloc与free是C++/C 语言的标准库函数,new/delete 是C++的运算符。对于非内部数据类的对象而言,光用maloc/free 无法满足动态对象的要求。对象在创建的同时要自动执行构造函数, 对象消亡之前要自动执行析构函数。由于malloc/free 是库函数而不是运算符,不在编译器控制权限之内
2014-04-25 19:41:37
328
原创 在一个字符串中找到第一个只出现一次的字符
char FindFirstNoRepeatChar(const char *str){assert(str != NULL);const char *s = str;for(; *str != '\0'; ++str){for(s = (++str),--str; *s != '\0' && *s != *str; s++)NULL;if(*s == '\0')
2014-04-25 19:39:14
364
转载 strlen
原型:extern int strlen(char *s); 用法:#include 功能:计算字符串s的(unsigned int型)长度 说明:返回s的长度,不包括结束符NULL。 举例: // strlen.c #include #include main() { char *s="Go
2014-04-08 20:34:22
369
转载 二维数组与指针
二维数组作为函数参数传递剖析(C语言)(6.19更新第5种)前言 很多文章不外乎告诉你下面这几种标准的形式,你如果按照它们来用,准没错://对于一个2行13列int元素的二维数组//函数f的形参形式f(int daytab[2][13]) {...}//以下两种可以忽略行数f(int daytab[][13]) {...}f(int (*daytab)[13
2014-04-07 21:29:47
515
原创 字符串反转
char *stringReverse(char *string){ char *start=string;char *left=string;char ch;if (string !=NULL){ while(*string != '\0') string++;string -=1; //1while(left {
2014-04-05 14:26:14
372
原创 exit
C语言中Exit函数的使用exit() 结束当前进程/当前程序/,在整个程序中,只要调用 exit ,就结束return() 是当前函数返回,当然如果是在主函数main, 自然也就结束当前进程了,如果不是,那就是退回上一层调用。在多个进程时.如果有时要检测上进程是否正常退出的.就要用到上个进程的返回值.. exit(1)表示进程正常退出. 返回 1;exit(0)表示进程非正常
2014-04-04 20:52:57
375
原创 ASCII码表
ASCII码对照表下表列出了字符集中的 0 - 127。代码字符代码字符代码字符代码字符0 32[空格]64@96`1 33!65A97a2 34"66B98b3 35#67C99c
2014-04-03 20:00:43
2081
转载 寻找数组中的最大值最小值问题
转自http://blog.youkuaiyun.com/insistgogo/article/details/7693743问题描述:给出一个数组,包含N个整数,那么需要比较多少次找到最大值和最小值注意:要想得到最大值和最小值,遍历一遍数组是不可避免的。我们能减少的就是减少比较次数来提高效率方法一、遍历一遍数组,同时得到最大值和最小值具体是,定义一个max 和 min,每遍历
2014-03-31 15:46:14
1198
原创 Fibonacci数列
long long Fibonacci_Solution1(unsigned int n){ if(n return 0; if(n == 1) return 1; return Fibonacci_Solution1(n - 1) + Fibonacci_Solution1(n - 2);}/
2014-03-31 15:11:26
388
原创 链表问题
给定单链表的头指针和一个节点指针,在O(1)时间内删除该节点void DeleteNode(ListNode** pListHead, ListNode* pToBeDeleted){ if(!pListHead || !pToBeDeleted) return; // 要删除的结点不是尾结点 if(pToBeDeleted->m_p
2014-03-28 17:05:14
351
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人