- 博客(20)
- 收藏
- 关注
转载 递归
最近看了一些递归的例子,发现调用递归之前的语句和递归之后的语句执行顺序是正好相反的,这是给我的最大感受,具体看如下例子/*递归例子*/#includevoid up_and_down(int);int main(void){ up_and_down(1); return 0;}void up_and_down(int n){printf("L
2014-09-03 10:47:01 324
转载 vector resize & reserve
首先必须弄清楚两个概念:1.capacity 指容器在分配新的存储空间之前能存储的元素总数。2. size 指当前容器所存储的元素个数 在弄清这两个概念以后,很容易懂resize和reserve的区别 1).reserve表示容器预留空间,但并不是真正的创建对象,需要通过insert()或push_back()等创建对象。
2014-08-21 10:25:31 288
转载 memset用法详解与实现
memset用法详解与实现memest原型 (please type "man memset" in your shell) void *memset(void *s, int c, size_t n); memset:作用是在一段内存块中填充某个给定的值,它对较大的结构体或数组进行清零操作的一种最快方法。
2014-08-19 16:06:24 542
转载 C++函数能否返回多个值?
C系列语言是不能的,只能返回一个返回值。但纠正一下三楼的说法,不是所有语言都是这样,比如matlab就可以返回多个。如果在C++语言中需要返回多个值可以有以下三种方法:1、返回一个数组的首地址,那么可以把整个数组的元素返回。例如:double* a;a=f();double* f(){b=(double*)malloc(8*2);b[0]=1;b[1]=2;return b
2014-06-17 13:44:02 3648
转载 如何实现多线程
在JAVA中,实现多线程有两种方式,一种是继承自Thread类,一种是Runnable,在MFC中也有CWinThread类,但是我们如何利用已有的多线程的机制来实现一个多线程类呢? 在Windows 中使用C语言做多线程编程,我们可以使用两个函数,一个是CreateThread(),该函数是一个Win32 API函数,另一个是_beginthread(),该函数是一个CRT
2014-06-11 19:53:19 329
转载 extern的使用
1 基本解释:extern可以置于变量或者函数前,以标示变量或者函数的定义在别的文件中,提示编译器遇到此变量和函数时在其他模块中寻找其定义。此外extern也可用来进行链接指定。 也就是说extern有两个作用,第一个,当它与"C"一起连用时,如: extern "C" void fun(int a, int b);则告诉编译器在编译fun这个函数名时按着C的规则去翻译相应的函数
2014-06-05 20:33:17 389
转载 const的用法
首先说明一下使用const的好处:使用const的好处在于它允许指定一种语意上的约束------某种对象不能被修改--------编译器具体来实施这种约束。通过const,你可以通知编译器和其他程序员某个值要保持不变。只要是这种情况,你就要明确地使用const ,因为这样做就可以借助编译器的帮助确保这种约束不被破坏。(一)首先解释一下const与指针的关系:const在指针的声明中
2014-05-30 17:24:25 416
转载 二维数组与指向指针的指针
int a[2][3]; a的类型相当于 int (*)[3]而不是int **int a[2][3];int (*b)[3] = a; 这是可以的---int *p[3];数组类型变量参与运算的时候视为指针。运算时的p[0],这里[]是指针的运算符,数组类型不会直接参与运算。 p[0]就是 *(p + 0) 也就是*p 显然p可以看成int **类型的 ---只有运算的
2014-05-25 15:21:16 335
转载 二维数组的分配和删除
二维数组的动态分配和删除 首先,动态支持数组的分配,必须用 new 来进行创建一段堆内存,其它的存贮区域不允许动态分配的产生。 其次,C++并没有提供真正的动态多维数组语法,想动态分配数组,必须通过一维动态数组组合形成一个类似多维数组的存贮形式,并不像静态分配多维数组,它们的用法虽说有些地方 有相似之处,但不完全相同。 再次,有些网友有一些很BT的分配方式
2014-05-25 15:05:31 365
转载 指针的理解
在说指向指针的指针之前,不得不说指向变量的指针。先看如下示例: 1. 指向整型指针先看如下示例: 1 #include 2 using namespace std; 3 4 int main() 5 { 6 int a = 5; 7 int * p = &a; 8 cout "a = " 9
2014-05-25 14:37:27 219
转载 #ifndef的用法
文件中的#ifndef 头件的中的#ifndef,这是一个很关键的东西。比如你有两个C文件,这两个C文件都include了同一个头文件。而编译时,这两个C文件要一同编译成一个可运行文件,于是问题来了,大量的声明冲突。 还是把头文件的内容都放在#ifndef和#endif中吧。不管你的头文件会不会被多个文件引用,你都要加上这个。一般格式是这样的: #ifndef #define
2014-05-23 22:08:18 1855
转载 模板
C++模板学习1. 模板的概念。我们已经学过重载(Overloading),对重载函数而言,C++的检查机制能通过函数参数的不同及所属类的不同。正确的调用重载函数。例如,为求两个数的最大值,我们定义MAX()函数需要对不同的数据类型分别定义不同重载(Overload)版本。//函数1.int max(int x,int y);{return(x>y)?x:y ;}/
2014-05-23 21:05:03 289
转载 二叉树镜像问题的循环解法
题目描述:请完成一个函数,输入一个二叉树,该函数输出他的镜像这个函数主要使用的思想就是循环,上yipian;二叉树结点定义如下:struct BinaryTreeNode{int m_nValue; BinaryTreeNode m_pLeft; BinaryTr
2014-05-23 20:38:38 479
转载 二叉树的子树(剑指offer)
题目要求:输入两棵二叉树A和B,判断B是不是A的子结构,二叉树结点定义如下:此题目的总结:主要使用链表的遍历和递归struct BinaryTreeNode { int m_nValue; BinaryTreeNode m_pLeft; Binar
2014-05-22 23:00:06 339
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人