- 博客(211)
- 资源 (17)
- 收藏
- 关注
转载 堆和栈的区别
堆和栈的区别 (转贴) 非本人作也!因非常经典,所以收归旗下,与众人阅之!原作者不祥!堆和栈的区别一、预备知识—程序的内存分配一个由c/C++编译的程序占用的内存分为以下几个部分1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由
2014-03-29 10:30:27 651
转载 中缀表达式转后缀表达式C++代码
[cpp] view plaincopy//MyStack.h #include using namespace std; template class ElemType> class MyStack { public: const static int MAXSIZE =100; ElemType data[MAXSIZE];
2014-03-27 15:20:06 1479
原创 用双链表封装的栈的实现
上一篇文章http://blog.csdn.net/hongkangwl/article/details/22286469中用C++实现了双向链表了,下面我们对其封装,得到栈~~、我们用链表的插入和删除模仿pop和push完整代码如下:#include using namespace std;struct node { int date; node* prev; nod
2014-03-27 14:34:13 928
原创 双向链表的C++实现
转载注明出处http://blog.csdn.net/hongkangwl/article/details/22286469首先定义节点的结构struct node { int date; node* prev; node* next;};老样子,建立双链表的类class doublelink{public: int doublelink_in
2014-03-27 14:26:01 19839 1
原创 循环链表及其接口函数的C++实现
转载请注明出处:http://blog.csdn.net/hongkangwl/article/details/22284249首先建立节点的结构体struct node{ int date; node* ptrnext;};然后在循环链表的类中声明需要的成员和方法class circlelinklist{private: int le
2014-03-27 14:01:28 1455
转载 new和delete
一 数组和new 数组类型变量三个重要限制:1 数组长度不变2 在编译时必须知道其长度3 数组只在定义它的块语句内存在突破数组的限制针对2 需要在运行时动态的分配数组针对3 动态分配的数组一直存在,直到程序显示释放它 自由存储区:又叫做堆。每一个程序在执行时都占用一块可用的内存空间,用于存放动态分配的对象,此内存空间称为程序的自由存储区或堆。C语言使用一
2014-03-22 14:28:56 619
原创 基于C++类和指针实现二叉树
1、二叉树的定义 二叉树(Binary Tree)是一种特殊的树型结构,每个节点至多有两棵子树,且二叉树的子树有左右之分,次序不能颠倒。 由定义可知,二叉树中不存在度(结点拥有的子树数目)大于2的节点。二叉树形状如下下图所示:2、二叉树的性质(1)在二叉树中的第i层上至多有2^(i-1)个结点(i>=1)。备注:^表示此方(2)深度为k的二叉树至多有2^k-1个节点(k>=
2014-03-21 10:10:11 14141 2
原创 ACM 9的余数
除以9,能整除的数,有个特点,就是数位相加,还能被9整除,或数位相加结果再相加,一直能最后得到9.如:6255,6+2+5+5=18,1+8=9或:62+55=117,1+1+7=9或625+5=630,6+3+0=9所以原式求和:1+2+3+4+5+6......+1998+1999=(1+1999)*2000/2=2000000数位相加为2,比9小7,所以+7可被9整除
2014-03-19 17:13:17 1279
原创 C++中返回指向函数的指针学习
int *p() 定义一个函数,该函数返回一个指向整型元素的指针变量 int (*p)() 指向函数的指针,该函数返回一个整型值在C++ primer 238页中出现的int(*ff(int))(int*,int) ,解释为:ff(int)是一个函数,带有一个int型的形参,所以,这个首先是一个函数。如下面例子中的int (*funOne(int number))(int
2014-03-18 16:20:35 1887
原创 typedef和const pointer定义
假设以下语句Typedef string *ptr;Const ptr cstr;很多人都认为cstr的真实类型是Const string *cstr,但这是错误的。#include #include using namespace std;int main(){ string s("hello world"); string s1("you can not poi
2014-03-18 14:58:13 807
原创 typedef和常量指针
假设以下语句Typedef string *ptr;Const ptr cstr;很多人都认为cstr的真实类型是str,但这是错误的。Const string *c#include #include using namespace std;int main(){ string s("hello world"); string s1("you can not point
2014-03-18 14:50:57 736
原创 stcuct和class的区别
1struct的成员默认权限是public,而class的成员默认权限是private。#include int main(){ class A { public: int a; }; struct B { public: int a; }; A A1; B B1; B1.a = 0; A1.a = 0; return
2014-03-17 20:57:21 843
转载 UML类图关系大全
1、关联双向关联:C1-C2:指双方都知道对方的存在,都可以调用对方的公共属性和方法。在GOF的设计模式书上是这样描述的:虽然在分析阶段这种关系是适用的,但我们觉得它对于描述设计模式内的类关系来说显得太抽象了,因为在设计阶段关联关系必须被映射为对象引用或指针。对象引用本身就是有向的,更适合表达我们所讨论的那种关系。所以这种关系在设计的时候比较少用到,关联一般都是有向的。
2014-03-17 20:10:23 626
原创 linux下的进程等待(wait和waitpid)
wait(等待子进程中断或结束)表头文件 #include #include定义函数 pid_t wait (int * status);函数说明: wait()会暂时停止目前进程的执行,直到有信号来到或子进程结束。 如果在调用 wait()时子进程已经结束,则 wait()会立即返回子进程结束状态值。 子进程的结束状态值会由参
2014-03-17 09:11:26 2100
原创 Linux下execl学习
Linux下头文件#include 函数定义int execl(const char *path, const char *arg, ...);函数说明execl()其中后缀"l"代表list也就是参数列表的意思,第一参数path字符指针所指向要执行的文件路径, 接下来的参数代表执行该文件时传递的参数列表:argv[0],argv[1]... 最后一个参数须用空指针NULL作结
2014-03-17 09:11:15 4728
原创 Linux下的无名管道pipe的设计
1. 函数说明pipe(建立管道):1) 头文件 #include2) 定义函数: int pipe(int filedes[2]);3) 函数说明: pipe()会建立管道,并将文件描述词由参数filedes数组返回。 filedes[0]为管道里的读取端 filedes[1]则为管道的写入端。4) 返回值: 若成
2014-03-17 09:10:57 1455
原创 linux下调用库函数实现文件的读写
1. Linux系统调用,文件的描述符使用的是一个整数,库函数访问文件使用FILE类型的指针去指向描述文件;2. 库函数不随系统平台而变,即不管win还是Linux都适用; 库函数 - 读文件size_t fread(void *ptr, size_t size, size_t n, FILE *stream)功能:从stream指向的文件中读取n个字段,每个字段为si
2014-03-16 21:21:56 1849
原创 linux下文件的读写操作( open read write)
open(打开文件) 相关函数 read,write,fcntl,close,link,stat,umask,unlink,fopen 表头文件 #include#include#include 定义函数 int open( const char * pathname, int flags);int open( const char * pathname,int flags
2014-03-16 21:02:55 24014
原创 linux通过C/C++获取本地时间的方法
我们在编程中可能会经常用到时间,比如取得系统的时间(获取系统的年、月、日、时、分、秒,星期等),或者是隔一段时间去做某事,那么我们就用到一些时间函数。linux下存储时间常见的有两种存储方式,一个是从1970年到现在经过了多少秒,一个是用一个结构来分别存储年月日时分秒的。time_t 这种类型就是用来存储从1970年到现在经过了多少秒,要想更精确一点,可以用结构struct timeval
2014-03-16 20:31:00 5264
原创 Makefile:2: *** 遗漏分隔符 。 停止。
今天写makefile始终显示Makefile:2: *** 遗漏分隔符 。 停止。很无奈,发现写的没有错,没办法,翻书看看,找到原因了!make中规定每一Shell命令之前的开头必须使用字符。因此在g++前面加一个tab就解决啦~
2014-03-16 16:03:44 3617
原创 linux下的C++编程
第一步,要安装C++的编译器g++使用如下命令:root@wl-MS-7673:/home/wl/桌面/c++# apt-get install g++第二步,开始我们的hello world使用Vim建立helloworld.cpp,输入如下:root@wl-MS-7673:/home/wl/桌面/c++# cat helloworld.cpp #inclu
2014-03-16 15:59:20 4463
原创 dynamic_cast彻底明白了~
dynamic_cast ( expression)该运算符把expression转换成type-id类型的对象。Type-id必须是类的指针、类的引用或者void*;如果type-id是类指针类型,那么expression也必须是一个指针,如果type-id是一个引用,那么expression也必须是一个引用。dynamic_cast运算符可以在执行期决定真正的类型。如果downc
2014-03-13 12:56:55 25003 3
原创 C++的输入输出操作符重载
操作符的重载有一些规则:1. 重载操作符必须具有一个类类型或枚举类型操作数。这条规则强制重载操作符不能重新定义用于内置类型对象的操作符的含义。 如: int operator+(int, int), 不可以 2. 为类设计重载操作符的时候,必须选择是将操作符设置为类成员还是普通非成员函数。在某些情况下,程序没有选择,操作符必须是成员;在另外一些情况下,有些经验可以指导我
2014-03-13 10:39:23 1027
原创 python快速入门
【简介】 Python是一种动态解释型的编程语言。Python可以在Windows、UNIX、MAC等多种操作系统上使用,也可以在Java、.NET开发平台上使用。 【特点】 1. Python使用C语言开发,但是Python不再有C语言中的指针等复杂的数据类型。 2. Python具有很强的面向对象特性,而且简化了面向对象的实现。它消除了保护类型、抽象类、接口等面向对象
2014-03-12 17:24:23 797
原创 Linux下对临时文件的操作之mkstemp
使用临时文件要考虑几个问题:保证临时文件间的文件名不互助冲突。保证临时文件中内容不被其他用户或者黑客偷看、删除和修改。Linux中提供了mkstemp 和 tmpfile 函数来处理临时文件。mkstemp函数int mkstemp(char *template);mkstemp函数在系统中以唯一的文件名创建一个文件并打开,而且只有当前用户才能访问这个临时文件,并进行读、写
2014-03-12 10:07:45 4768
原创 linux下输入输出重定向
inux重定向是指修改原来默认的一些东西,对原来系统命令的默认执行方式进行改变,比如说简单的我不想看到在显示器的输出而是希望输出到某一文件中就可以通过Linux重定向来进行这项工作。 Linux默认输入是键盘,输出是显示器。你可以用重定向来改变这些设置。比如用wc命令的时候本来是要手动输入一篇文字来计算字符数的,用了重定向后可以直接把一个已经写好的文件用‘ STDIN 0 键盘输入
2014-03-11 11:11:43 7205
原创 [华为机试题]最大连续递增子串
#include #include #include using namespace std;int main(){ string s; string::size_type length(0); cin>>s; string::size_type num = s.size(); vector ss, ss1; ss.clear(); ss1.clear();
2014-03-11 09:48:13 752
原创 【shell脚本学习】shift命令学习
位置参数可以用shift命令左移。比如shift 3表示原来的$4现在变成$1,原来的$5现在变成$2等等,原来的$1、$2、$3丢弃,$0不移动。不带参数的shift命令相当于shift 1。非常有用的 Unix 命令:shift。我们知道,对于位置变量或命令行参数,其个数必须是确定的,或者当 Shell 程序不知道其个数时,可以把所有参数一起赋值给变量$*。若用户要求 Shell 在不
2014-03-10 14:21:46 1044
原创 【shell脚本学习】$*与$@
$*与$@变量都提供了对所有参数的快速访问,这两个都能够在单个变量中存储所有的命令行参数。$*变量会将命令行上提供的所有参数当作单个单词保存,其会被当作单个参数,而不是多个对象。$@变量会将命令行上提供的所有参数当作同意个字符串中的多个独立的单词。他允许遍历所有的值,将提供的每个参数分割开来。这通常通过for命令完成。下面看一个例子就明白啦~root@wl-MS-7673:/hom
2014-03-10 14:12:23 1902
原创 [shell脚本学习]处理用户输入
当脚本需要与运行脚本的人员进行交互。bash shell提供了命令行参数(添加在命令后面的数据值)、命令行选项(修改命令行为的单字符值)和直接读取键盘输入。1、命令行参数向shell脚本传递数据的最基本方式是使用命令行参数。(1)读取参数 读取输入的参数的变量为位置参数,位置参数通过标准数字表示, 其中$0为程序名称,$1为第一个参数,$2为第二个参数,依次类推,直
2014-03-10 13:35:32 1985
转载 【Linux】生产者消费者编程实现-线程池+信号量
生产者消费者编程实现,采用了线程池以及信号量技术。线程的概念就不多说,首先说一下多线程的好处:多线程技术主要解决处理器单元内多个线程执行的问题,它可以显著减少处理器单元的闲置时间,增加处理器单元的吞吐能力。 那么为什么又需要线程池呢? 我们知道应用程序创建一个对象,然后销毁对象是很耗费资源的。创建线程,销毁线程,也是如此。因此,我们就预先生成一些线程,等到我们使
2014-03-10 13:29:27 875
转载 轻松搞定面试中的二叉树题目
树是一种比较重要的数据结构,尤其是二叉树。二叉树是一种特殊的树,在二叉树中每个节点最多有两个子节点,一般称为左子节点和右子节点(或左孩子和右孩子),并且二叉树的子树有左右之分,其次序不能任意颠倒。二叉树是递归定义的,因此,与二叉树有关的题目基本都可以用递归思想解决,当然有些题目非递归解法也应该掌握,如非递归遍历节点等等。本文努力对二叉树相关题目做一个较全的整理总结,希望对找工作的同学有所帮助。
2014-03-10 13:26:42 608
原创 grep
1.作用Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来。grep全称是Global Regular Expression Print,表示全局正则表达式版本,它的使用权限是所有用户。2.格式grep [options]3.主要参数[options]主要参数:-c:只输出匹配行的计数。-I:不区分大 小写(只适用于
2014-03-10 13:08:57 813
原创 linux下管道命令|
想必很多刚接触linux尤其是在redhat环境下,大家都见过 rpm -qa | grep 或者rpm - qa| sort之类的命令,但是并不知道|是一个什么符号。管道符号,是unix功能强大的一个地方,符号是一条竖线:"|",用法: command 1 | command 2 他的功能是把第一个命令command 1执行的结果作为command 2的输入传给command 2:例
2014-03-10 12:59:28 922
原创 ubuntu下常用命令
一、文件目录类 1.建立目录:mkdir 目录名 2.删除空目录:rmdir 目录名 3.无条件删除子目录: rm -rf 目录名 4.改变当前目录:cd 目录名 (进入用户home目录:cd ~;进入上一级目录:cd -) 5.查看自己所在目录:pwd 6.查看当前目录大小:du 7.显示目录文件列表:ls -l (-a:增加显示隐含目录) 其中:
2014-03-10 12:47:41 820
转载 Shell脚本编程的常识
Shell脚本编程的常识七种文件类型正则表达式字符类描述shell的引号类型变量设置时的不同模式:条件测试命令执行顺序脚本调试一些常用的小trick打印一些头信息创建一个长度为0的空文件一些常用的shell变量$0的使用Shift的运用用head或tail指令指定查阅的行数awk使用规则第一个 awk多个字段外部脚本B
2014-03-07 14:07:25 913
android触摸位置显示
2014-02-13
-LPC1788-SDK Example V1.0 Beta version LPC1788例程
2013-08-23
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人