C++编程
新一小雨
这个作者很懒,什么都没留下…
展开
-
extern的使用
1 基本解释:extern可以置于变量或者函数前,以标示变量或者函数的定义在别的文件中,提示编译器遇到此变量和函数时在其他模块中寻找其定义。此外extern也可用来进行链接指定。 也就是说extern有两个作用,第一个,当它与"C"一起连用时,如: extern "C" void fun(int a, int b);则告诉编译器在编译fun这个函数名时按着C的规则去翻译相应的函数转载 2014-06-05 20:33:17 · 370 阅读 · 0 评论 -
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 · 515 阅读 · 0 评论 -
vector resize & reserve
首先必须弄清楚两个概念:1.capacity 指容器在分配新的存储空间之前能存储的元素总数。2. size 指当前容器所存储的元素个数 在弄清这两个概念以后,很容易懂resize和reserve的区别 1).reserve表示容器预留空间,但并不是真正的创建对象,需要通过insert()或push_back()等创建对象。转载 2014-08-21 10:25:31 · 271 阅读 · 0 评论 -
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 · 3562 阅读 · 0 评论 -
const的用法
首先说明一下使用const的好处:使用const的好处在于它允许指定一种语意上的约束------某种对象不能被修改--------编译器具体来实施这种约束。通过const,你可以通知编译器和其他程序员某个值要保持不变。只要是这种情况,你就要明确地使用const ,因为这样做就可以借助编译器的帮助确保这种约束不被破坏。(一)首先解释一下const与指针的关系:const在指针的声明中转载 2014-05-30 17:24:25 · 393 阅读 · 0 评论 -
包含min函数的栈
题目:定义栈的数据结构,请在该类型中实现yi转载 2014-05-30 16:34:55 · 492 阅读 · 0 评论 -
二叉树的后序遍历
题目要求:输入一个整数数组,判断这是不是一个mou转载 2014-06-13 15:53:12 · 363 阅读 · 0 评论 -
如何实现多线程
在JAVA中,实现多线程有两种方式,一种是继承自Thread类,一种是Runnable,在MFC中也有CWinThread类,但是我们如何利用已有的多线程的机制来实现一个多线程类呢? 在Windows 中使用C语言做多线程编程,我们可以使用两个函数,一个是CreateThread(),该函数是一个Win32 API函数,另一个是_beginthread(),该函数是一个CRT转载 2014-06-11 19:53:19 · 313 阅读 · 0 评论 -
二维数组与指向指针的指针
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 · 319 阅读 · 0 评论 -
指针的理解
在说指向指针的指针之前,不得不说指向变量的指针。先看如下示例: 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 · 203 阅读 · 0 评论 -
顺时针打印矩阵
题目要求:输入一个矩阵,按照从外向里以顺时针转载 2014-05-25 20:44:28 · 223 阅读 · 0 评论 -
二维数组的分配和删除
二维数组的动态分配和删除 首先,动态支持数组的分配,必须用 new 来进行创建一段堆内存,其它的存贮区域不允许动态分配的产生。 其次,C++并没有提供真正的动态多维数组语法,想动态分配数组,必须通过一维动态数组组合形成一个类似多维数组的存贮形式,并不像静态分配多维数组,它们的用法虽说有些地方 有相似之处,但不完全相同。 再次,有些网友有一些很BT的分配方式转载 2014-05-25 15:05:31 · 346 阅读 · 0 评论 -
模板
C++模板学习1. 模板的概念。我们已经学过重载(Overloading),对重载函数而言,C++的检查机制能通过函数参数的不同及所属类的不同。正确的调用重载函数。例如,为求两个数的最大值,我们定义MAX()函数需要对不同的数据类型分别定义不同重载(Overload)版本。//函数1.int max(int x,int y);{return(x>y)?x:y ;}/转载 2014-05-23 21:05:03 · 267 阅读 · 0 评论 -
#ifndef的用法
文件中的#ifndef 头件的中的#ifndef,这是一个很关键的东西。比如你有两个C文件,这两个C文件都include了同一个头文件。而编译时,这两个C文件要一同编译成一个可运行文件,于是问题来了,大量的声明冲突。 还是把头文件的内容都放在#ifndef和#endif中吧。不管你的头文件会不会被多个文件引用,你都要加上这个。一般格式是这样的: #ifndef #define转载 2014-05-23 22:08:18 · 1835 阅读 · 0 评论 -
递归
最近看了一些递归的例子,发现调用递归之前的语句和递归之后的语句执行顺序是正好相反的,这是给我的最大感受,具体看如下例子/*递归例子*/#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 · 309 阅读 · 0 评论