自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(36)
  • 收藏
  • 关注

原创 排序算法

1.快速排序void SortByName(data mydata[],int left,int right) //left,right is index{ if(left>=right) return; int first=left,last=right; data key; CopyData(key,mydata[first]); cout<<key

2015-08-30 20:12:49 268

原创 活动选择问题-动态规划/贪心算法

问题描述:        有一个需要使用每个资源的n个活动组成的集合S= {a1,a2,···,an },资源每次只能由一个活动使用。每个活动ai都有一个开始时间和结束时间,且 0定义子集合Sij = { ak  S : f i 假设S中的活动已按照结束时间递增的顺序排列,则Sij具有如下的性质:1.当i 2.假设ak属于Sij,那么ak将把Sij分解成两个子问题,Sij包

2015-08-27 22:24:15 868

原创 求一个小于10的正整数的n次方,n很大

经常碰到一个小数的n次方的问题,结果数量级很大,超过double的范围,但是这种问题可以转为求一个小于10的正整数的n次方,然后在进行处理。void power(int *a,int base,int n) { int j,k,i,set=0; for (k=base,i=0;i<MAX;i++,k/=10) a[i]=k%10; f

2015-08-27 19:03:50 1467

原创 事件驱动仿真

#ifndef SIMULATE_H_#define SIMULATE_H_#include #include #include using namespace std;#define MAX 100//event classenum EventType{ Arrival, Departure }; //event typestruct Customer{ int

2015-08-26 21:56:25 1972

原创 linux下byte to byte 比较文件

#include #include #include #include #include #include #include using namespace std;#define SIZE 30#define BLOCKSIZE 4096char path1[SIZE];char path2[SIZE];size_t min(size_t a,siz

2015-08-26 21:43:09 637

转载 linux下I/O缓冲

缓冲区作用:在实际编程中,I/O速度取决于显示器、键盘、硬盘等I/O设备的性能,而这些设备比起CPU和内存是比较慢的。因此系统采用缓冲区的方式来减少I/O的读写,以便提高系统性能。I/O的缓冲区的种类:1、无缓冲;2、行缓冲;3、全缓冲。一、行缓冲:看一个例子:[cpp] view plaincopy#incl

2015-08-16 17:04:09 296

转载 exit与_exit

在linux的标准库函数中,有一套称作高级I/O的函数,我们熟知的printf 、fopen 、fread 、fwrite都在此列,他们也被称作缓冲I/O。其特征是对应每一个打开的文件,都存在一个缓冲区, 在内存中都有一片缓冲区,每次读文件会多读若干条记录,这样下次读文件时就可以直接从内存的缓存中取出,每次写文件时也仅仅是写入到内存的缓冲区,等待满足一定的条件(达到一定的数量,或者遇到特定字符,如

2015-08-16 16:55:18 289

原创 解释器文件

1.在/home/tian/UNIX/8-20文件夹下创建一个解释器文本testinterp#! /home/tian/UNIX/8-20/echoarg foo2.创建echoarg程序:#include "apue.h"int main(int argc,char *argv[]){ int i; for(i=0;i<argc;i++) printf("ar

2015-08-16 16:30:04 348

原创 exec调用新程序

被调用程序:#include #include #include int main(int argc, char *argv[], char **environ){ int i; printf("I am a process image\n"); printf("My pid = %d, parentpid = %d\n", getpid(), getppid());

2015-08-16 15:23:23 426

原创 strlen()和sizeof()函数

strlen计算不包括终止null字节的字符串长度,而sizeof则计算包括终止字符null字节的字符串长度。strlen获得的是实际大小,而sizeof获得的是初始化的大小。

2015-08-15 19:41:23 319

原创 C和C++文件操作区别

基于C的文件操作在ANSI C中,对文件的操作分为两种方式,即流式文件操作和I/O文件操作,下面就分别介绍之。一、流式文件操作这种方式的文件操作有一个重要的结构FILE,FILE在头文件stdio.h中定义如下:typedef struct {int level;unsigned flags;char fd;unsigned char hold;int

2015-08-15 10:01:36 1449

原创 atoi函数和strtok函数

atoi函数:将字符串转换成整型数。(包含在头文件stdlib.h中)strtok函数:将一个字符串按一定的规则分成若干个子字符串。(包含在头文件string.h中)atoi用法比较简单,下面主要来说strtok函数的用法:char *strtok(char *str, const char *delim);功能:分解字符串为一组标记串。str为要分解的字符串,delim为分隔符字符串

2015-08-15 09:48:29 1079

原创 如何读写二进制文件

如果用getc或putc读写一个结构,那么必须循环通过整个结构,每次循环处理一个字节,这会非常麻烦。如果使用fputs和fgets,那么遇到null字节就会停止,而在结构中可能含有null字节,所以不能使用它实现读结构的要求。如果进行二进制I/O操作,每次可以读或者写一个完整的结构。#include size_t fread(void *restrict ptr,size_t si

2015-08-15 09:30:16 640

原创 一个简单的makefile的编写

头文件:part.hcpp文件(包含part.h):part.cppcpp文件(包含part.h):partMain.cppmakefile编写如下:main:partMain.o part.o g++ -o main partMain.o part.o partMain.o:partMain.cpp part.h g++ -c partMain.cpp part.o:pa

2015-08-14 22:00:05 388

原创 定义全局变量

定义全局变量时,以下面为例:一个工程有part.h         part.cpp            main.cpp三个文件其中后两个文件都包含前面的头文件,则不要在part.h中定义变量,这样会出现重复定义,较好的做法是定义全局变量。part.h中:extern int a;part.cpp中:int a;main.cpp中就不要在定义了.

2015-08-14 15:16:59 313

原创 vector创建数组及对应操作

一.创建一维数组vector a(size,initValue);也可以不进行初始化。vector a;其中size是数组的大小,initValue是初始值。此外还可以重新设置大小和初始值。a.resize(newSize,newValue);往创建的数组中插值有两种方法:1.insert函数iterator insert( iterator loc

2015-08-10 21:16:52 695

原创 关于err_sys未定义错误解决方法

err_sys以及err_quit等函数不是C语言自带函数,是作者自己编写的函数。所以,想要运行书中的源代码,就必须自建一个头文件my_err.h把作者的代码拷贝进去,然后在程序中加载,可以和apue.h放在一个路径下,然后在代码中加上#include "error.h"。下面是error.h的内容。#include errno.h> /* for defini

2015-08-07 21:29:34 4403

原创 C++中max_element和min_element

函数原型:#include iterator max_element( iterator start, iterator end ); iterator max_element( iterator start, iterator end, BinPred p );用法:#include#

2015-08-04 23:32:45 642

原创 函数fork和vfork

一个现有的进程可以调用fork函数创建一个新的进程。#include pid_t fork(void);返回值:子进程返回0,父进程返回子进程ID;若出错,返回-1 。fork函数被调用一次,但返回两次。两次返回的区别是子进程的返回值是0,而父进程的返回值则是新建子进程的进程ID。将子进程ID返回给父进程的原因是:因为一个进程的子进程可以有多个,并且没有一个函数使一个进程可以获得

2015-08-03 23:09:12 388

原创 函数setjmp和longjmp

在C中,goto语句是不能跨越函数的,而执行这种类型跳转功能的是函数setjmp和longjmp。#include "apue.h"#define TOK_ADD 5void do_line(char *);void cmd_add(void);int get_token(void);int main(void){ char line[MAXLINE];

2015-08-03 19:38:27 388

原创 binary search

一.定义二分法检索(binary search)又称折半检索,二分法检索的基本思想是设字典中的元素从小到大有序地存放在数组(array)中,首先将给定值key与字典中间位置上元素的关键码(key)比较,如果相等,则检索成功;否则,若key小,则在字典前半部分中继续进行二分法检索;若key大,则在字典后半部分中继续进行二分法检索。这样,经过一次比较就缩小一半的

2015-08-03 14:59:50 393

转载 vector用法

vector类称作向量类,它实现了动态数组,用于元素数量变化的对象数组。像数组一样,vector类也用从0开始的下标表示元素的位置;但和数组不同的是,当vector对象创建后,数组的元素个数会随着vector对象元素个数的增大和缩小而自动变化。    vector类常用的函数如下所示:    1.构造函数vector():创建一个空vectorvector(int

2015-08-02 15:58:08 244

原创 添加动作

本节,我们将在前面主窗口基础之上,添加菜单和工具栏等的动作。虽然 Qt Creator 已经帮我们实现了主窗口的框架代码,但是具体的功能,还是需要我们一行行添加。Qt 使用 QAction 类作为动作。顾名思义,这个类就是代表了窗口的一个“动作”,这个动作可能显示在菜单,作为一个菜单项,当用户点击该菜单项,对用户的点击做出响应;也可能在工具栏,作为一个工具栏按钮,用户点击这个按钮就可以执行相应

2015-08-02 14:56:30 339

原创 MainWindow简介

QMainWindow 是 Qt 框架带来的一个预定义好的主窗口类。所谓主窗口,就是一个普通意义上的应用程序(不是指游戏之类的那种)最顶层的窗口。比如你现在正在使用的浏览器,那么主窗口就是这个浏览器窗口。试着回想一下经典的主窗口,通常是由一个标题栏,一个菜单栏,若干工具栏和一个任务栏。在这些子组件之间则是我们的工作区。事实上,QMainWindow 正是这样的一种布局。下面我们新建一个工程。还记得

2015-08-02 14:23:30 2871 1

原创 QT模块简介

Qt 5 模块分为 Essentials Modules 和 Add-on Modules 两部分。前者是基础模块,在所有平台上都可用;后者是扩展模块,建立在基础模块的基础之上,在能够运行 Qt 的平台之上可以酌情引入。Qt 基础模块分为以下几个:Qt Core,提供核心的非 GUI 功能,所有模块都需要这个模块。这个模块的类包括了动画框架、定时器、各个容器类、时间日期类、事件、I

2015-08-02 13:54:44 367

原创 自定义信号槽

经典的观察者模式在讲解举例的时候通常会举报纸和订阅者的例子。有一个报纸类 Newspaper,有一个订阅者类 Subscriber。Subscriber 可以订阅 Newspaper。这样,当 Newspaper 有了新的内容的时候,Subscriber 可以立即得到通知。在这个例子中,观察者是 Subscriber,被观察者是 Newspaper。在经典的实现代码中,观察者会将自身注册到被观察者

2015-08-02 13:46:15 296

原创 笔试题4

已知n个人(以编号1,2,3...n分别表示)围坐在一张圆桌周围。从编号为k的人开始报数,数到m的那个人出列;他的下一个人又从1开始报数,数到m的那个人又出列;依此规律重复下去,直到圆桌周围的人全部出列。输出最后一个出列的人的编号。请写一段代码模拟实现。

2015-08-02 12:53:04 318

原创 linux笔记

ls –ald:将目录像文件一样显示,列出该目录下的所有文件的详细信息从root进入到用户界面:su – tian在2的基础上,输入exit命令,可以切换到原本的root身份ls –l/:显示根目录内容;ls –l:显示当前目录内容.:表示当前的目录,也可以使用./来表示;..:代表上一层目录,也可以../来表示。从当前目录到

2015-08-01 23:36:32 242

原创 信号槽

所谓信号槽,实际就是观察者模式。当某个事件发生之后,比如,按钮检测到自己被点击了一下,它就会发出一个信号(signal)。这种发出是没有目的的,类似广播。如果有对象对这个信号感兴趣,它就会使用连接(connect)函数,意思是,用自己的一个函数(成为槽(slot))来处理这个信号。也就是说,当信号发出时,被连接的槽函数会自动被回调。这就类似观察者模式:当发生了感兴趣的事件,某一个操

2015-08-01 23:32:34 293

原创 emacs笔记

第一部分:启动emacs        直接在命令行输入emacs.第一部分:emacs快捷键说明:C代表Ctrl,M代表Alt。基本光标控制C-v:向前移动一屏M-v:向后移动一屏C-l:重绘屏幕,并将光标置于屏幕中央                            上一行 C-p     

2015-08-01 23:20:49 258

原创 QT第一个Hello World程序

1.建立工程2.修改main.cpp函数如下:#include "mainwindow.h"#include #include int main(int argc, char *argv[]){ QApplication a(argc, argv); QLabel label("Hello World!"); label.show();

2015-08-01 22:16:03 424

原创 网址信息收集器

#include #include #include #include #include #include #include #include #include #include#include#include#include#include#include#includeusing namespace std;struct URLNode{ string

2015-08-01 16:54:34 373

原创 HTTP请求与数据下载

#include #include #include #include #include #include #include #include #include#include#include#include#include using namespace std;int main(){ int sclient; struct sockaddr_in ds_S

2015-08-01 16:12:49 335

原创 DNS域名解析

在实际编程中,可利用gethostbyname()函数来完成DNS的解析查询工作,其原型为:hostent* gethostbyname(const char *strURL);其中strURL是URL的字符串信息,返回值是struct hostent指针类型,struct hostent中通过h_addr字段来存储解析成功后的IP地址。#include #include #inc

2015-08-01 15:55:03 450

原创 C程序将注册信息写入数据库(升级)

1.注册:检查用户名是否已经被用。2.登录:自动检查帐号密码是否匹配。#include #include #include #include #include using namespace std;char logFlag;string name;string password1;MYSQL *conn;MYSQL_RES *res;MYSQL_RO

2015-08-01 11:38:07 625 1

原创 C程序将注册信息保存到数据库

#include #include #include #include #include using namespace std;string name;string password1;void Output(){ char temp; cout<<"Do you have a account?Y/N:"; cin>>temp; if(temp=='N')

2015-08-01 10:00:55 865

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除