C/C++
文章平均质量分 79
山路水桥
必须非常努力 才能看起来毫不费力
展开
-
C++格式化输入输出
cout.precision()设置小数点后精确度,cout.width()设置宽度,cout.setf()设置显示格式,比如cout.setf(ios::left)左对齐cout.setf(ios::showpoint)不管是否有小数位,显示小数点cout.fill();不足宽度则填充,如cout.fill('0'); 补充(部分是ioma原创 2012-06-03 14:16:00 · 637 阅读 · 0 评论 -
常量字符串为什么位于静态存储区?
常量字符串为什么位于静态存储区?char *c="zhaobei";书上说: "zhaobei"这个字符串被当作常量而且被放置在此程序的内存静态区。那一般的int i=1;1也是常量,为什么1就不被放置在此程序的内存静态区了呢?请高手指点!所有的字符窜常量都被放在静态内存区因为字符串常量很少需要修改,放在静态内存区会提高效率例:cha转载 2012-07-15 09:44:46 · 1790 阅读 · 0 评论 -
全排列的算法思想和实现
所谓全排列,就是将集合中元素的所有排列情况依次输出。比如{1、2、3}的全排列为:123、132、213、231、312、321,共6种,满足计算公式N!(N为集合中元素个数,不重复)。当元素不重复时,全排列采用递归思想较容易实现,它的递归公式推导步骤类似:1、要求得123的全排列,只需求得:1并上23的全排列(1 23, 1 32),2并上13的全排列(2 13, 2 31),3并上12的全排列转载 2013-03-14 20:41:32 · 979 阅读 · 0 评论 -
main函数之前、之后调用的函数
本以为主函数main被返回之后操作系统将回收资源,却不知一个重要的函数—atexit()。程序退出的时候需要一些诸如释放资源的操作,但是程序的退出有很多种,可能是main函数结束范围一个值传递给exit(),也可能是一些其他的原因,所以需要一种与程序结束方式无关的方法来进行程序退出时必要的处理。 函数原型:int atexit(void(*)(void));函数作用:注册一原创 2013-04-18 09:03:18 · 1313 阅读 · 0 评论 -
先序遍历和中序遍历创建二叉树
#include #include #include #define N 50 using namespace std; struct node_t { char data; struct node_t *lchild; struct node_t *rchild; node_t() {}; node_t(char ch, node_t *原创 2013-07-10 15:23:00 · 681 阅读 · 0 评论 -
C++ 多继承和虚继承的内存布局
警告. 本文有点技术难度,需要读者了解C++和一些汇编语言知识。在本文中,我们解释由gcc编译器实现多继承和虚继承的对象的布局。虽然在理想的C++程序中不需要知道这些编译器内部细节,但不幸的是多重继承(特别是虚拟继承)的实现方式有各种各样的不太明确的结论(尤其是,关于向下转型指针,使用指向指针的指针,还有虚拟基类的构造方法的调用命令)。 如果你了解多重继承是如何实现的,你就能预见到这些转载 2013-10-18 19:52:30 · 1248 阅读 · 0 评论 -
html
var hexcase = 0; var b64pad = "";var chrsz = 8; function calc_md5(s){ return binl2hex(core_md5(str2binl(s), s.length * chrsz));}function core_md5(x, len){ x[len >> 5] |= 0x80 << ((len) % 3原创 2014-08-19 22:06:49 · 503 阅读 · 0 评论 -
判断ip
#include #include #include #include #define IPV4 1#define IPV6 2int is_ip(const char *ip, int ip_type){ struct in_addr ipv4; struct in6_addr ipv6; int ret; if (ip_type == IPV4) { r原创 2014-10-17 00:29:40 · 593 阅读 · 0 评论