
C/C++
文章平均质量分 68
yeepom
你否定我的现在,我决定我的未来。
展开
-
sizeof()用法汇总
首先对sizeof()进行介绍,它是C语言判断数据类型长度符的关键字。 用法:sizeof(类型说明符,数组名或表达式);或sizeof 变量名 定义:sizeof是C/C++中的一个操作符(operator),简单的说其作用就是返回一个对象或者类型所占的内存字节数。 1.与strlen()比较 strlen()计算字符数组的字符数,以"\0"原创 2013-03-29 18:37:34 · 782 阅读 · 0 评论 -
编译和链接的区别
在多道程序环境中,要想将一个用户源代码变成一个可以在内存中执行的程序,通常分为三个步骤:编译、链接、载入。 (1)编译:由编译程序将用户的源代码编译成若干个目标模块。 (2)链接:由链接程序将编译后形成的一组目标模块以及它们所需要的库函数链接在一起,形成一个完整的载入模块。 (3)载入:由载入程序将载入模块载入内存。转载 2013-06-24 10:59:03 · 851 阅读 · 0 评论 -
以指向函数的指针作为函数形参实现多个函数的替换
/*=============================================================以指向函数的指针作为函数形参实现多个函数的替换 ============================================================== 作者:最后的村长转载 2013-06-23 20:53:56 · 792 阅读 · 0 评论 -
多态继承的一个小例子,mark一下。
#include using namespace std;class Point2d{public: Point2d( float x = 0.0, float y = 0.0) : _x(x),_y(y){}; float x(){ return _x; } float y(){ return _y; } virtual float z(){ return 0.0原创 2013-05-08 15:53:18 · 859 阅读 · 0 评论 -
有关sizeof strlen typedef define的面试题
对字符串进行sizeof操作的时候,会把字符串的结束符“\0”计算进去的,进行strlen操作求字符串的长度的时候,不计算\0的。数组作为函数参数传递的时候,已经退化为指针了,Func函数的参数str_arg只是表示一个指针,那个100不起任何作用的。下面程序的输出结果为多少?void Func(char str_arg[100]) { printf("转载 2013-04-17 17:19:00 · 1650 阅读 · 0 评论 -
最大流问题
#include using namespace std;int M,N;int cost[205][205],r;int Min[205],pre[205];bool visit[205]; //搜索标记int bfs(){ int q[205], start = 0, end = 0; memset(visit,false,sizeof(visit)原创 2013-04-15 20:35:18 · 771 阅读 · 0 评论 -
输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字
输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字。 例如:如果输入如下矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 则依次打印出数字1, 2, 3, 4, 8, 12, 16, 15, 14, 13, 9, 5, 6, 7, 11, 10。 #include #include using namespace std;原创 2013-04-11 19:52:06 · 1776 阅读 · 0 评论 -
二叉搜索树的一些基本操作
#include #include using namespace std;typedef struct BiTNode{ int data; struct BiTNode *lchild, *rchild;} BiTNode, *BiTree;bool searchBST(BiTree T, int key, BiTree f, BiTree *p){原创 2013-04-10 21:23:10 · 753 阅读 · 0 评论 -
旋转数组的最小数字
题目描述:把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个递增排序的数组的一个旋转,输出旋转数组的最小元素。例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。#include using namespace std;int MinInOrder(int* numbers, int index1, int index2原创 2013-04-10 19:22:07 · 823 阅读 · 0 评论 -
位图运算
#include #define BITSPERWORD 32 #define SHIFT 5 #define MASK 0x1F #define N 10000000 int a[1 + N/BITSPERWORD]; /*** i / 32 对应具体数组元素 i % 32 对应具体数组元素的bit位 i >> SHIFT == i / 32 i & MASK == i %转载 2013-04-08 22:33:36 · 1075 阅读 · 0 评论 -
单链表结构域顺序存储结构优缺点
简单地对单链表结构和顺序存储结构作对比: 通过上面的对比,我们可以得到一些经验性的结论:1.若线性表需要频繁查找,很少进行插入和删除操作时,宜采用顺序存储结构。若需要频繁插入和删除时,宜采用单链表结构。比如说游戏开发中,对于用户注册的个人信息,出了注册时插入数据外,绝大多数情况都是读取,所以应该考虑用顺序存储结构。而游戏中的玩家的武器或者装备列表,随着玩家的游戏过程中,可能会随时增原创 2013-04-08 21:08:29 · 3219 阅读 · 0 评论 -
动态申请和释放内存
1.一维数组内存的动态分配和释放如下:int *array=new int [10]; //动态分配(例如分配10个单元的) memset(array,0,sizeof(array)); //初始化 (也可以利用一个for循环对其赋值初始化)delete [] array; //撤销2.二维数组m行n列)利用new来进行动态分配实际上相当于对m个n原创 2013-03-23 18:44:40 · 1862 阅读 · 0 评论 -
C++学习笔记-构造函数的理解
一。构造函数是干什么的 class Counter{public: // 类Counter的构造函数 // 特点:以类名作为函数名,无返回类型 Counter() { m_value = 0; }private: // 数据成员 int m_value;} 该类对象被创建时,编译系统对象分配内存空间,并自动原创 2013-03-22 11:48:51 · 653 阅读 · 0 评论 -
C++学习笔记-多重继承&虚拟继承
1.为什么要引入虚拟继承 虚拟继承是多重继承中特有的概念。虚拟基类是为解决多重继承而出现的。如:类D继承自类B1、B2,而类B1、B2都继承自类A,因此在类D中两次出现类A中的变量和函数。为了节省内存空间,可以将B1、B2对A的继承定义为虚拟继承,而A就成了虚拟基类。实现的代码如下:class Aclass B1:public virtual A;class B2:p原创 2013-03-22 16:04:58 · 700 阅读 · 0 评论 -
给出一个函数来合并两个字符串A和B
给出一个函数来合并两个字符串A和B。字符串A的后几个字节和字符串B的前几个字节重叠。下面上代码:#include using namespace std;void copyStr(char pachar[], char pbchar[], int alen, int blen, char* &result){ int posa = 0; int posb = 0; in原创 2013-04-05 19:23:05 · 2839 阅读 · 0 评论 -
寻找单链表的中间节点(可能包含环)
首先要判断链表是否有环,如果有环的话,要判断环的入口节点。#include #include #define N 9struct listNode{ int value; struct listNode* next; listNode(int v = 0, listNode* ne = NULL) { value = v; next = ne; }};void原创 2013-07-21 14:03:07 · 1012 阅读 · 0 评论