- 博客(207)
- 资源 (21)
- 收藏
- 关注
转载 ./configure,make,make install的作用
1、configure,这一步一般用来生成 Makefile,为下一步的编译做准备,你可以通过在 configure 后加上参数来对安装进行控制,比如代码:./configure –prefix=/usr 意思是将该软件安装在 /usr 下面,执行文件就会安装在 /usr/bin (而不是默认的 /usr/local/bin),资源文件就会安装在 /usr/share(而不是默认的/usr/loc
2014-03-17 17:51:38
798
原创 apue源代码编译和使用
关于apue第二版(apue.2e)的源代码编译请参考点击打开链接。下面是关于如何编译我们自己写的apue上的例子的程序。以例子1为例。假设文件名为exc.1.1.c,放在~/source目录下。内容如下所示:#include #include intmain(int argc, char *argv[]){ DIR *dp; struct dirent *drp
2014-03-15 16:18:32
1010
转载 集群监控工具ganglia
来源:http://bbs.51cto.com/thread-878166-1.htmlGanglia是一款非常不错的监控软件,它可以对当前的系统软硬件进行全面的监控,特别适合集群的监控,可以对各个节点以及整个集群进行全面的监控。下面来说一下环境的搭建。说明:操作系统rhel5.4注意:安装系统,选择安装的软件包时不要默认安装,选择“自定义”。然后在development里面全部都勾选
2013-12-26 21:59:36
1154
原创 条件运算符
关于条件运算符,c++要求第一个表达式是逻辑表达式,第二个和第三个表达式的类型应该是相同的。如下代码:#includeusing namespace std;void main(){ cout << 1?1:"hu";}//条件运算符要求两个参数的类型都是一样的则是错误的。
2013-10-07 13:47:36
681
原创 对集合{1, 2, 3, …, n}中的数进行全排列,可以得到 n!个不同的排列方式
题目如下:. 对集合{1, 2, 3, …, n}中的数进行全排列,可以得到 n!个不同的排列方式。现在我们用字母序把它们列出来,并一一标上序号,如当 n=3 时:0.1231.1322.2133.2314.3125.321现在,请书写一个函数 void print (int n, int k), (函数原型是用 C语言写的,你可以用你熟悉的语言)在已知 n和序号
2013-10-07 10:42:49
1848
原创 将整型变量 x 中数字左右翻转后存到另外一个整型变量 y中
一道面试题。很常见却也有点新意,特记录如下:题目:将整型变量 x 中数字左右翻转后存到另外一个整型变量 y中,例如 x = 12345 时,y为 54321,x = ‐123 时,y为‐321。其中 x 的个位不为 0。分析:常见的翻转是对字符串进行,此处是对int数进行。将x的每位拆出来,放入队列中。经过这个过程就能知道x有多少位,再从队列中取出数据并乘以pow(10,位
2013-10-07 10:28:50
1214
转载 堆与栈的区别
这个是我目前看到的分析的最全面的了。. 堆与栈的去区别A. 申请方式不同Stack由系统自动分配,而heap需要程序员自己申请,并指明大小。B. 申请后系统的响应不同Stack:只要栈的剩余空间大于申请空间,系统就为程序提供内存,否则将抛出栈溢出异常Heap:当系统收到程序申请时,先遍历操作系统中记录空闲内存地址的链表,寻找第一个大于所申请空间的堆结点,然后将该结点
2013-10-06 22:12:55
884
原创 仿函数,即函数对象,的一个简单例子
#include#include#include#includeusing namespace std;class student{public: student(){}//这个构造函数是必需的,因为sort的第三个参数需要一个默认的student对象即可 student(int x, string str){ age=x; name=str; } int age;
2013-10-06 17:15:30
981
原创 从stl的max函数写法学到的
下面是stl库中的max函数的源码:templateinline const T max(const T &a, const T &b){ return a > b?a:b;}有如下特点:简单的函数可以避免代码膨胀,所以使用内联的形式实现;参数和返回值均是const型的,做到十分的安全;参数是以传引用的方式传递的,这是因为已经被限定为const,那么即使是使用
2013-10-06 10:52:44
1499
原创 vector的自增长问题
有如下代码:#include #include#includeusing namespace std;int fun (vector&val){ copy(val.begin(),val.end(),ostream_iterator(cout,"\n")); return 1;}void main(){ int a[5]={1,2,3,4,5}; vector v;
2013-10-05 10:43:12
793
转载 哈夫曼树
1. 哈夫曼树的基本概念 哈夫曼树( Huffman )又称最优二叉树,是一类带权路径长度最短的树,有着广泛的应用。 在讨论哈夫曼树之前首先需要弄清楚关于路径和路径长度的概念。树中两个结点之间的路径由一个结点到另一结点的分支构成。两结点之间的路径长度是路径上分支的数目。树的路径长度是从根结点到每一个结点的路径长度之和。 设一棵二叉树有 n 个叶子结点,每个叶子结点拥有一个权值W
2013-09-25 15:48:04
1880
原创 const变量的实现原理
1 说明今天试验了下const存储的问题,收获很多,所以做个记录。如果有错误请指针。我的试验环境xp + vc6.0(sp6)。虽然不能代表所有的浏览器,但是也有代表性吧。考虑const存储问题,我觉得最重要的一点应该是要区分全局const变量和局部const变量。单纯的说const变量是没有意义的。下面将就1)局部const存储;2)常量替换;3)局部const的修改;
2013-09-25 11:39:25
2724
转载 一个进程在内存中的布局
来源:http://patmusing.blog.163.com/blog/static/135834960201001512358686/对于一个完整的程序,在内存中分布情况如下图: 值得一提的是:在C#中struct存放在栈区,class存放在堆区,所以一般struct要比class要快的。 堆和栈的比较表(仅针对C++)
2013-09-25 09:48:37
717
转载 C/C++中static关键字详解
来源:http://www.cnblogs.com/yc_sunniwell/archive/2010/07/14/1777441.html 静态变量作用范围在一个文件内,程序开始时分配空间,结束时释放空间,默认初始化为0,使用时可以改变其值。 静态变量或静态函数只有本文件内的代码才能访问它,它的名字在其它文件中不可见。用法1:函数内部声明的static变量,可作为对
2013-09-24 21:19:13
741
转载 程序编译后运行时的内存分配
原文地址:程序编译后运行时的内存分配-转作者:知足常乐一、编译时与运行时的内存情况1.编译时不分配内存编译时是不分配内存的。此时只是根据声明时的类型进行占位,到以后程序执行时分配内存才会正确。所以声明是给编译器看的,聪明的编译器能根据声明帮你识别错误。2.运行时必分配内存运行时程序是必须调到“内存”的。因为CPU(其中有多个寄存器)只与内存打交道的。程序在进入实际内
2013-09-24 21:13:25
834
原创 new和delete函数的重载
#include using namespace std;//new和delete的局部重载例子class test{public: test(){ cout << "test constructor." << endl; } //返回的是void类型的指针 void* operator new (size_t size){ cout << "operator new"
2013-09-24 19:59:43
715
原创 cas spring mvc 中文乱码
使用spring mvc集成cas服务器的时候会出现如果出现中文乱码的问题,要检查spring mvc的 编码过滤器是否配置在cas的编码过滤器之前了,这样才能避免中文乱码的出现。
2013-08-08 14:36:15
766
原创 eclipse JVM Tomcat 内存堆栈大小设置
1, 设置Eclipse内存使用情况 修改eclipse根目录下的eclipse.ini文件 -vmargs //虚拟机设置 -Xms40m //初始内存 -Xmx256m //最大内存 -Xmn16m //最小内存 -XX:PermSize=128M //非堆内存 -XX:MaxPermSize=256M 2, JVM内存设置 打开eclipse window-preferences-Java
2013-08-07 22:14:58
1016
原创 cas的几个误区
调试了一上午,搞定了,这里做个记录。1.错误:unable to find valid certification path to requested target这个错误是说找不到证书,而很多人都确认自己确实导入了证书,我也是。这就可以从下面两点去排错:
2013-08-04 11:38:52
796
原创 Athena Framework实例的安装
1. 重点我想有了下面几点的说明,您安装和运行AthenaFramework的示例肯定没有多难的。希望对您有帮助。l 请一定阅读了示例的ReadMe文件再去深入的做,这个文件透露的信息很多;l MySQL的版本请使用5.0,至少我在WindowXP平台下使用MySQL 5.6,在Linux下使用5.1都会报错。5.6版本说type innodb的语法错误,因为5.6已经默认使用
2013-07-07 17:40:11
1201
原创 Athena Framework简介
1.相关资源网址1. Google code:http://code.google.com/p/athena-framework/2. 项目主页:http://www.athenasource.org/3. 备注资源下载:a) 手册:http://download.csdn.net/detail/pty_2007/5715813b
2013-07-07 17:37:27
1658
原创 第一个LaTeX源文件
\documentclass{article}%导言区\begin{document}%文档开始Hello \LaTeX.\today\end{document}
2013-06-01 15:04:56
1079
原创 自顶向下的考虑问题
其实,说实话学了也说了这么多的面向对象设计方法,可是对这个设计方法实在是不敢说有多么好的理解。今天按照《c++沉思录》上的第八章课堂练习做了下,多使用面向对象设计方法有了更加深刻的理解。我的首要感觉是面向对象就像是自顶向下的设计,顶就是类的设计,下就是函数体的设计。而函数参数的设计也是顶的一部分。所以函数参数的设计也不能忽略。面向对象设计方法需要多多实践和感受。
2013-05-29 10:57:24
800
原创 为类设计init函数的好处
可以将对象的构造从构造函数中分离出来,如果不适用init,每次执行init中的初始化代码的机会只有调用该构造函数一次,而如果将这个初始化的代码分离到init函数中,则会有无数次的调用这些初始化代码的机会。这样一来我们甚至可以仅仅先使用默认构造函数创建一个对象,然后再为这个对象进行初始化操作。
2013-05-29 10:24:40
883
原创 函数返回一个对象时要调用复制构造函数的原因
因为如果函数返回的是一个局部对象,这个局部对象在函数运行结束时就会被释放掉,这是不合法的,所以调用构造函数先构造一个非局部对象,这样避免 了返回局部对象的错误。
2013-05-29 10:19:46
1559
原创 应该提供默认构造函数的原因
暂时想到的,以此做记录:1.要构造对象数组;2.要使用暂存对象作为运算结果为对象类型数据的中转,类似交换两个数据值的函数中使用的temp;
2013-05-29 10:15:31
729
原创 头文件包含的含义
头文件包含的含义是将头文件的内容插入到cpp文件中,这样一来,如果自己写了多个头文件,并且这些头文件之间存在相互调用的话,那么就可以根据替换结果是否符合C++语法,判断你的头文件包含是否合理。
2013-05-28 09:11:52
1079
原创 不能继承内置数据类型
在c++语言中,不能继承int,float此类的内置数据类型。另外, 在java语言中,不能继承Integer之类的数据类型,这些数据类型都被声明为final了。
2013-05-20 19:57:57
737
原创 VC 6.0 代码执行时间测量 代码
#includeusing namespace std;void main(){ clock_t begin = clock(); //... clock_t end = clock();}
2013-05-15 09:28:56
757
原创 数组分页导致的性能损失验证程序
#include #include using namespace std;#define N 4096void main(){ int **a = new int*[N]; for(int i = 0; i < N; i++) a[i] = new int[N]; int **b = new int*[N]; for(i = 0; i < N; ++i) b[i] =
2013-05-14 19:45:19
745
原创 二叉树宽度
代码如下://node.hstruct node{ int value; node *lchild; node *rchild;};//tree.h#include "node.h"#include class tree{public: tree(); node* pre_build_tree(char *filename); int wight(); p
2013-05-11 16:36:19
844
原创 char *与char[]的区别
下列代码:char *str1 = "hfut";char *str2 = "hfut";char str3[] = "new";char str4[] = "new";str1和str2实际上指向的是同一个内存区域,因为"hfut"被编译器是视为常量,存放在常量区了。而,str3和str4指向的不是同一个内存去也,它实际上是在栈上开辟一个数组,然后把常量区的"new"复制
2013-05-10 21:05:07
672
原创 strcmp函数的几点记录
以下是strcmp函数代码:int strcmp(const char *dest, const char *src){ assert(dest != NULL && src != NULL); while(*dest && *src && *dest++ == *src++); return *dest - *src; }有这么几点我忽略的地方,这里做记录:1.'\0
2013-05-10 19:38:58
794
转载 C++程序栈溢出
Windows下C++程序默认的栈空间是2M(VC++2008编译器默认1M,这个值是可以在编译器中设置的。随手写了一段栈溢出的代码: #include using std::cout; using std::endl;int main() { int a[1024][256]={0}; //在栈上分配,大小为1M,运行时栈溢出挂掉! return 0
2013-05-10 10:08:58
1033
原创 堆上的溢出
在一次写代码的过程中,突然遇到的一个错误:如果使用new时不对new操作是否成立的话会导致内存操作错误。下列代码所示:#include using namespace std;struct node{ int value; struct node * next;};void main(){ struct node *head = new node; head -> n
2013-05-07 16:32:12
698
JSP™ ApplicationP
2011-11-06
apache+tomcat+geoserver地图配置文档
2011-04-29
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人