![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C++
文章平均质量分 50
freezgw1985
这个作者很懒,什么都没留下…
展开
-
指针和引用的区别
★ 相同点:1. 都是地址的概念;指针指向一块内存,它的内容是所指内存的地址;引用是某块内存的别名。★ 区别:1. 指针是一个实体,而引用仅是个别名;2. 引用使用时无需解引用(*),指针需要解引用;3. 引用只能在定义时被初始化一次,之后不可变;指针可变;引用“从一而终” ^_^4. 引用没有 const,指针有 const,const 的指针不可变;5. 引用不能为空,指针可以为空;6. “s原创 2010-03-02 16:42:00 · 440 阅读 · 0 评论 -
C++/STL Bitset (转)
构造函数 bitset b; b有n位,每位都为0.参数n可以为一个表达式. 如bitset b0;则"b0"为"00000"; bitset b(unsigned long u); b有n位,并用u赋值;如果u超过n位,则顶端被截除 如:bitsetb0(5);则"b0"为"00101"; bitset b(string s); b是string对象s中含有的位串的副本 string bitval ( "10011" ); bitset b0 ( bitval4 );转载 2010-10-27 19:48:00 · 825 阅读 · 0 评论 -
堆与优先级队列的研究
<br /> <br />堆,是一个很有意思的数据结构。逻辑结构是树,一般为二叉树,每个节点的值都大于(小于)其子树中的任意节点。也就是说,使用堆结构的数组中,元素 是部分有序的。而正是这个特点,使得在堆上,得到最大值(最小值)的时间复杂度为O(1),移除最大值(最小值)、插入元素、改变元素值(或者是删除位置 已知的元素)的时间复杂度为O(lgn)。另外,用堆结构的排序是一种原地的、时间复杂度为O(nlgn)的排序算法。<br />在优先级队列前先说一下堆排序。<br />堆排序和归并排序都是时间复杂度为O转载 2010-09-26 21:15:00 · 991 阅读 · 0 评论 -
栈与堆的比较
1 申请方式 栈: 由系统自动分配。 例如,声明在函数中一个局部变量 int b; 系统自动在栈中为b开辟空间 堆: 需要程序员自己申请,并指明大小,在c中malloc函数:如p1 = (char *)malloc(10); 在C++中用new运算符 如p2 = (char *)malloc(10); 但是注意p1、p2本身是在栈中的。 2 申请后系统的响应 栈:只要栈的剩余空间大于所申请空间,系原创 2010-05-23 13:29:00 · 661 阅读 · 0 评论 -
C++ 中的static静态变量
1. static 变量静态变量的类型 说明符是static。 静态变量当然是属于静态存储方式,但是属于静态存储方式的量不一定就是静态变量。 例如外部变量虽属于静态 存储方式,但不一定是静态变量,必须由 static加以定义后才能成为静态外部变量,或称静态全局变量。2. 静态局部变量静态局部变量属于静态存储方式,它具有以下特点:(1)静态局部变量在函数内定义 它的生存期为整个源程序,但是其作用域仍转载 2010-05-22 14:46:00 · 2106 阅读 · 0 评论 -
Linux内核中 遍历链表
最近在看一个开源的代码,一段代码看了很久都没有看懂,Google了一下,尽然是linux中链表的遍历。 遍历链表:遍历链表list_for_each是一个宏,展开了就是一个for循环#define list_for_each(pos, head) / for (pos = (head)->next; prefetch(pos->next), pos != (hea原创 2010-05-04 17:44:00 · 1418 阅读 · 0 评论 -
sizeof和strlen的区别
1、strlen指字符的大小,即以char*做参数。且必须是以/0结尾的。2、sizeof指文件或者数据占的内存(字节) 3、例子(1)char str[20]="0123456789";int a=strlen(str); //a=10; >>>> strlen 计算字符串的长度,以结束符 0x00 为字符串结束。int b=sizeof(str); //而b=原创 2010-04-22 17:15:00 · 751 阅读 · 0 评论 -
服务器编程模型
Linux网络编程-- 服务器模型(ZZ)原文地址:http://study.pay500.com/1/s12212.htm 在网络程序里面,一般的来说都是许多客户机对应一个服务器.为了处理客户机的请求, 对服务端的程序就提出了特殊的要求.我们学习一下目前最常用的服务器模型.循环服务器:循环服务器在同一个时刻只可以响应一个客户端的请求并发服务器:并发服务器在同一个时刻可以响应多个客户端的请求9.1转载 2010-04-23 10:52:00 · 1218 阅读 · 0 评论 -
一个 二进制 移位
编写一个函数 ,让他把一个给定整数的二进制表示形式中的1 的个数统计出来。 整数在计算机内部存储的是以二进制形式存储,根本就不需要进制转换。 int Get1Num( const int x){ int y=x; int mid=0x0001; int count;原创 2010-04-20 16:50:00 · 824 阅读 · 0 评论 -
进制之间的转化
#include#includeusing namespace std; void change(int num,int base, stack& result){ while(num != 0) { if(num % base { result.push(num % base + 0); } else { res原创 2010-04-03 18:20:00 · 796 阅读 · 0 评论 -
虚函数和纯虚函数的区别
纯虚函数主要是你不知道函数如何定义,即你无法为其写出定义部分,这部分只有在子类中才能够正确表达。比如,我们要定义一个动物类,那它的呼吸方法怎么定义呢,是想鱼还是像人?这个没法定义,只能在子类中区定义。 而虚函数则是肯定知道这个函数的定义,并且大部分子类对这方法的定义应该是差不多的,比如我们要定义一个树类,树都可以进行光合作用,大部分树其进行光合作用的方法都差不多吧原创 2010-03-29 21:05:00 · 688 阅读 · 0 评论 -
C++模板
<br />#include <iostream> using namespace std; /* 函数模板 //template <typename T> template <class T> T max(T x,T y) { return (x < y)? y: x; } int main() { int n1 = 2,n2 = 3; double d1 = 4.6,d2 = 6.8; cout << "较小的整数"<<max(n1,n2)<< endl; cou原创 2010-10-29 19:41:00 · 607 阅读 · 0 评论