- 博客(157)
- 资源 (23)
- 收藏
- 关注
原创 jquery 表格的增加删除和修改及设置奇偶行颜色
最近一周在学了一点点HTML, CSS, javascript,用javascript的jquery完成了一个简单的表格操作,有增加、删除和修改功能。表格分三列,第一列是学生编号(ID号),第二列是学生姓名,第三列为学生年龄。在姓名和年龄框内输入数据,再点“Add”就可以增加数据(ID号会自动递增的生成),输入ID号再输入新的姓名和年龄点“Edit”就可以修改,删除的话输入ID号就点“Delete
2011-12-08 09:35:26 21718
原创 STL系列之六 set与hash_set
STL系列之六 set与hash_setset和hash_set是STL中比较重要的容器,有必要对其进行深入了解。在STL中,set是以红黑树(RB-tree)作为底层数据结构的,hash_set是以Hash table(哈希表)作为底层数据结构的。set可以在时间复杂度为O(logN)情况下插入、删除和查找数据。hash_set操作的时间复杂度则比较复杂,这取决于哈希函数和哈希表的负载情况。下面
2011-12-01 09:49:56 40015 50
原创 STL系列之五 priority_queue 优先级队列
priority_queue 优先级队列是一个拥有权值概念的单向队列queue,在这个队列中,所有元素是按优先级排列的(也可以认为queue是个按进入队列的先后做为优先级的优先级队列——先进入队列的元素优先权要高于后进入队列的元素)。在计算机操作系统中,优先级队列的使用是相当频繁的,进线程调度都会用到。在STL的具体实现中,priority_queue也是以别的容器作为底部结构,再根据堆的处理规则
2011-11-16 12:39:00 56490 23
原创 STL系列之四 heap 堆
下面再介绍STL中与堆相关的4个函数——建立堆make_heap(),在堆中添加数据push_heap(),在堆中删除数据pop_heap()和堆排序sort_heap():头文件 #include 下面的_First与_Last为可以随机访问的迭代器(指针),_Comp为比较函数(仿函数),其规则——如果函数的第一个参数小于第二个参数应返回true,否则返回false。建立堆make_heap(
2011-11-14 01:16:13 72016 25
原创 STL系列之三 queue 单向队列
queue单向队列与栈有点类似,一个是在同一端存取数据,另一个是在一端存入数据,另一端取出数据。单向队列中的数据是先进先出(First In First Out,FIFO)。在STL中,单向队列也是以别的容器作为底部结构,再将接口改变,使之符合单向队列的特性就可以了。因此实现也是非常方便的。下面就给出单向队列的函数列表和VS2008中单向队列的源代码。单向队列一共6个常用函数(front()、ba
2011-11-09 09:20:10 69915 12
原创 STL系列之二 stack栈
栈(statck)这种数据结构在计算机中是相当出名的。栈中的数据是先进后出的(First In Last Out, FILO)。栈只有一个出口,允许新增元素(只能在栈顶上增加)、移出元素(只能移出栈顶元素)、取得栈顶元素等操作。在STL中,栈是以别的容器作为底部结构,再将接口改变,使之符合栈的特性就可以了。因此实现非常的方便。下面就给出栈的函数列表和VS2008中栈的源代码,在STL中栈一共就5个
2011-11-09 09:03:29 62930 17
原创 STL系列之一 deque双向队列
deque双向队列是一种双向开口的连续线性空间,可以高效的在头尾两端插入和删除元素,deque在接口上和vector非常相似,下面列出deque的常用成员函数: deque的实现比较复杂,内部会维护一个map(注意!不是STL中的map容器)即一小块连续的空间,该空间中每个元素都是指针,指向另一段(较大的)区域,这个区域称为缓冲区,缓冲区用来保存deque中的数据。因此deque在随机访问和遍历数
2011-11-08 09:52:01 131485 19
原创 Windows 缓冲区溢出与数据执行保护DEP
缓冲区溢出与数据执行保护DEP介绍先看一个缓冲区溢出的C++实例程序,代码如下(VC6.0下编译通过)://by MoreWindows #include #include #include #include #include void foo(const char *input){ char buf[4]; //buf 占4字节,后4字节为ebp,再后4个字节为返回地址。
2011-10-19 10:09:20 20765 18
原创 C# 访问数据库
C#访问数据库无疑是非常方便的,下面给出了C#访问MSSQL的基本方法。 首先声明命名空间using System.Data.SqlClient;再使用SqlConnection类连接,SqlCommand类执行SQL命令,结果返回给SqlDataReader类或其它类。 各类的基本用法介绍:SqlConnection类在构造时传入连接数据库字符串,也可以定义后通过ConnectionString
2011-10-10 10:37:26 28809 4
原创 Windows 各种计时函数总结
本文对Windows平台下常用的计时函数进行总结,包括精度为秒、毫秒、微秒三种精度的5种方法。分为在标准C/C++下的二种time()及clock(),标准C/C++所以使用的time()及clock()不仅可以用在Windows系统,也可以用于Linux系统。在Windows系统下三种,使用Windows提供的API接口timeGetTime()、GetTickCount()及QueryPerf
2011-10-09 10:42:30 60113 18
原创 C/C++变量在内存中的分布
C/C++变量在内存中的分布在笔试时经常考到,虽然简单,但也容易忘记,因此在这作个总结,以加深印象。先写一个测试程序:#include #include int g_i = 100;int g_j = 200;int g_k, g_h;int main
2011-10-08 10:30:09 33679 90
原创 Windows系统下搭建MPI(并行计算)环境
Windows系统下搭建MPI环境MPI的全称是Message Passing Interface即标准消息传递界面,可以用于并行计算。MPI的具体实现一般采用MPICH。下面介绍如何在Windows XP系统下VC6中搭建MPI环境来编写MPI程序。一.准备工作1.
2011-09-26 19:44:15 70067 20
原创 VS2010项目转化为VS2008项目
第一步:打开VS2010项目的SLN文件有如下代码: Microsoft Visual Studio Solution File, Format Version 11.00# Visual Studio 2010将之改为:Microsoft Visual St
2011-09-25 15:24:40 17409 2
原创 进程通信之一 使用WM_COPYDATA C++及C#实现
进程间通信最简单的方式就是发送WM_COPYDATA消息。本文提供C++及C#程序相互通信的二种实现方式。这样消息的接收端可以用C++实现,发送端可以用C++或C#实现。 发送WM_COPYDATA消息:SendMessage(接收窗口句柄, WM_COPYDATA, (WPARAM)发送窗口句柄, (LPARAM)&CopyData); 其中的CopyData为COPYDATASTRUCT结构类
2011-09-23 15:43:02 35034 14
原创 VC 控制台颜色设置
通常控制台都是白字黑底的,千篇一律不免单调。适当的在控制台中加入一些彩色可以让人耳目一新,本文介绍如何使用系统API接口去修改控制台的文字和背景颜色。 主要用到如下二个函数:得到standard input, standard output, or standard error的设备句柄:HANDLE GetStdHandle(DWORD nStdHandle);参数有:STD_INPUT_HAN
2011-09-19 10:39:04 19980 6
原创 C/C++ 在控制台下显示进度
当程序在进行大量的运算或IO操作时,常常需要耗很长时间,为了不让用户有一个乏味的等待或是错误的认为系统已经死机,有必要给程序添加进度提示功能。在窗口界面中要显示进度条和显示完成百分比是非常容易的,但如何在控制台下去完成这个任务了?一行一行的输出当前完成百分比肯定是不够美观的,最好能“原地踏步”一样的显示即旧的数字会被新的数字完全覆盖。其实这个是很容易的,下面先给出的示例代码,稍后再进行讲解。//在
2011-09-02 10:33:45 29545 20
原创 VC Debug与Release区别
Debug通常称为调试版本,它包含调试信息,并且不作任何优化,便于程序员调试程序。Release称为发布版本,它往往是进行了各种优化,使得程序在代码大小和运行速度上都是最优的,以便用户很好地使用,我们使用的软件都是Release版本的。Debug 和 Release 并没有本质的
2011-08-30 11:14:20 15624 5
原创 VC 编译参数介绍
VC编译器的编译链接参数非常之多,对程序生成在细节上的控制也是非常强大的。要深入了解编译器参数是比较困难的,但作个初步认识还是不太难。编译参数可以在Project Setting中查看(Project菜单再选择Setting),如下图:这些参数究竟代表什么意思了?可以
2011-08-29 19:46:46 11713 1
原创 C++ 类的静态成员详细讲解
在C++中,静态成员是属于整个类的而不是某个对象,静态成员变量只存储一份供所有对象共用。所以在所有对象中都可以共享它。使用静态成员变量实现多个对象之间的数据共享不会破坏隐藏的原则,保证了安全性还可以节省内存。静态成员的定义或声明要加个关键static。静态成员可以通过双冒号来
2011-08-26 18:19:33 113845 22
原创 白话经典算法系列之七 堆与堆排序
堆排序与快速排序,归并排序一样都是时间复杂度为O(N*logN)的几种常见排序方法。学习堆排序前,先讲解下什么是数据结构中的二叉堆。二叉堆的定义二叉堆是完全二叉树或者是近似完全二叉树。二叉堆满足二个特性:1.父结点的键值总是大于或等于(小于或等于)任何一个子节点的键值。2.每个结点的左子树和右子树都是一个二叉堆(都是最大堆或最小堆)。当父结点的键值总是大于或等于任何一个子节点的键值时为最大堆。当父
2011-08-22 20:04:13 439096 192
原创 C,C++中使用可变参数
可变参数即表示参数个数可以变化,可多可少,也表示参数的类型也可以变化,可以是int,double还可以是char*,类,结构体等等。可变参数是实现printf(),sprintf()等函数的关键之处,也可以用可变参数来对任意数量的数据进行求和,求平均值带来方便(不然就用数组或每种
2011-08-22 10:20:34 42974 8
原创 图解如何在VC6,VS2008中设置程序条件断点
VC6.0中按Ctrl+B可以弹出断点设置对话框点Condition,弹出Breakpoint Condition对话框中输入i==5||j==5。再点确定。再按F5运行程序,就会在设置的条件满足时停止。注意这句Break at ‘{, test.cpp,}.12’ when ‘i==5||j==5’。一般按F9设置的断点都没有后面这个语句称为指定行上无条件断点,这种可以称为指定行指定条件断点。另
2011-08-20 18:50:22 13537 5
原创 VC 利用DLL共享区间在进程间共享数据及进程间广播消息
在进程间共享数据有很多种方法,剪贴板,映射文件等都可以实现,这里介绍用DLL的共享区间在进程间共享数据,及共享数据有变化时及时的反馈给各相关进程。 一.在DLL中设置共享区间在DLL中是用数据段来实现共享区间的,有了这个共享区间,各进程可以方便的共享数据。1.先用
2011-08-19 16:27:53 11608 6
原创 C,C++宏中#与##的讲解
文中__FILE__与示例1的可以参见《使用ANSI C and Microsoft C++中常用的预定义宏》宏中的#的功能是将其后面的宏参数进行字符串化操作(Stringizing operator),简单说就是在它引用的宏变量的左右各加上一个双引号。如定义好#defi
2011-08-18 10:58:48 23200
原创 使用ANSI C and Microsoft C++中常用的预定义宏
__FILE__ 源文件的名称 如XXX.cpp__LINE__ 代码在源文件中是第几行 __DATE__ 源文件完成日期如Aug 17 2011__TIME__ 源文件完成时间如19:31:13__TIMESTAM
2011-08-17 21:35:23 8206
原创 VC 用发音函数Beep()播放简谱音乐
Win32 API中有个非常有意思的发音函数Beep(),可以用它在扬声器上播放简单的音调,如果按简谱来设置播放的内容,就可以播放一些简单的音乐了。 函数原型:BOOL WINAPI Beep( __in DWORD dwFreq, __
2011-08-15 15:30:27 12711 28
原创 VC 为程序创建快捷方式的详细讲解
有时候,为了方便用户使用我们编写的程序,需要在桌面,快速启动或程序组中创建程序的快捷方式。下面就介绍在VC下如何为程序创建快捷方式。一.得到桌面,快速启动或程序组的路径这里介绍二个win32 API函数来完成这个任务。第一个函数 获得系统特殊路径HRESULT S
2011-08-14 20:49:24 18148 16
原创 使用VC库函数中的快速排序函数
上一篇讲了快速排序的实现。但在很多场合,直接使用快速排序的库函数是很方便的。下面讲下VC中库函数qsort()的用法: 函数原型:void qsort(void *base,size_t num,size_t width, int (__cdecl *compare
2011-08-13 17:23:03 22252 8
原创 白话经典算法系列之六 快速排序 快速搞定
快速排序由于排序效率在同为O(N*logN)的几种排序方法中效率较高,因此经常被采用,再加上快速排序思想----分治法也确实实用,因此很多软件公司的笔试面试,包括像腾讯,微软等知名IT公司都喜欢考这个,还有大大小的程序方面的考试如软考,考研中也常常出现快速排序的身影。总的说来,要直接默写出快速排序还是有一定难度的,因为本人就自己的理解对快速排序作了下白话解释,希望对大家理解有帮助,达到快速排序,快
2011-08-13 17:19:58 665395 453
原创 VC 如何使程序运行后自己删除自己
有时候,我们需要创建一个运行后能够自己删除自己的可执行程序即自删除程序。很明显如果一个进程通过直接调用DeleteFile()来删除自己是不可能的。必须另想办法,经过本人在网上参考很多资料后实际测试并集众家之所长,发现有二种方法效果比较好。现在将其封装成函数,这样使用将更加容易:方法1,调用BAT文件。//向指定文件写入文本。如果文件不存在就创建。int WriteTextToFile(cons
2011-08-12 16:08:01 20545 25
原创 白话经典算法系列之五 归并排序的实现
归并排序是建立在归并操作上的一种有效的排序算法。该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。首先考虑下如何将将二个有序数列合并。这个非常简单,只要从比较二个数列的第一个数,谁小就先取谁,取了后就在对应数列中删除这个数。然后再进行比较,如果有数列为空,那直接将另一个数列的数据依次取出即可。//将有序数组a[]和b[]合并到c[]中void MemeryArra
2011-08-11 11:01:05 361603 179
原创 VS2008下设置与VC6.0相同的字体
用VC6.0用久,对VS2008的文字大小和文字字体非常不习惯,因此决定改动下VS2008显示代码的文字字体。运行VS2008后在菜单项依次选择工具->选项->环境->字体和颜色。然后先在显示项中选择“纯文本”,再将“字体” 设为 Fixedsys。“大小” 设为 13这
2011-08-11 10:33:00 12581 12
原创 白话经典算法系列之四 直接选择排序及交换二个数据的正确实现
直接选择排序和直接插入排序类似,都将数据分为有序区和无序区,所不同的是直接播放排序是将无序区的第一个元素直接插入到有序区以形成一个更大的有序区,而直接选择排序是从无序区选一个最小的元素直接放到有序区的最后。 设数组为a[0…n-1]。1. 初始时,数组全为无
2011-08-09 11:15:51 37031 37
原创 VC 利用SetWindowRgn实现程序窗口的圆角多角矩形
下面是实现程序窗口圆角多角矩形的三种方法,但效果都比较差。只是简单的将边角裁剪,从边框和标题栏上都可以看出来。不过可以通过这三个函数来学习下SetWindowRgn()及创建一个HRGN的不同方法。方法1void SetWindowEllipseFrame1(HWND hwnd, int nWidthEllipse, int nHeightEllipse){ HRGN hRgn; RE
2011-08-08 11:55:39 14645 4
原创 白话经典算法系列之三 希尔排序的实现
希尔排序的实质就是分组插入排序,该方法又称缩小增量排序,因DL.Shell于1959年提出而得名。 该方法的基本思想是:先将整个待排元素序列分割成若干个子序列(由相隔某个“增量”的元素组成的)分别进行直接插入排序,然后依次缩减增量再进行排序,待整个序列中的元素基本有序(增
2011-08-08 11:41:40 225773 114
原创 白话经典算法系列之二 直接插入排序的三种实现
直接插入排序(Insertion Sort)的基本思想是:每次将一个待排序的记录,按其关键字大小插入到前面已经排好序的子序列中的适当位置,直到全部记录插入完成为止。 设数组为a[0…n-1]。1. 初始时,a[0]自成1个有序区,无序区为a[1..n-1]。
2011-08-06 19:27:17 154553 92
原创 白话经典算法系列之一 冒泡排序的三种实现
冒泡排序是非常容易理解和实现,,以从小到大排序举例:设数组长度为N。1.比较相邻的前后二个数据,如果前面数据大于后面的数据,就将二个数据交换。2.这样对数组的第0个数据到N-1个数据进行一次遍历后,最大的一个数据就“沉”到数组第N-1个位置。3.N=N-1,如果N
2011-08-06 19:20:30 196363 103
Base64系列第四篇 C/C++中使用Base64编码解码(从chromium库中抽取)
2013-10-19
VC++位图特效显示合集—交错、百叶窗、随机积木、飞入伸展
2013-03-24
进程通信之三 父进程传参数与子进程返回值
2013-03-21
Windows VC++ 调整进程当前目录为程序可执行文件所在目录
2013-03-21
WindowsVC++获取多核CPU各核使用率
2013-03-20
WindowsVC++获取CPU整体使用率
2013-03-20
MoreWindows微软实习生大礼包
2013-03-18
秒杀多线程第十六篇 多线程十大经典案例之一 双线程读写队列数据
2013-03-13
Windows界面编程第八篇 listbox彩色显示隔行变色
2013-03-11
Windows界面编程第七篇 文件拖拽(文件拖放)
2013-03-11
电脑屏幕大小查看器(VC++带源码)
2013-03-03
MoreWindows界面编程第五篇 静态控件背景透明化
2013-01-06
MoreWindows界面编程第四篇 异形窗口2
2013-01-06
MoreWindows界面编程第三篇 异形窗口 1
2013-01-06
MoreWindows界面编程第一篇-位图背景与位图画刷
2012-12-31
OpenCV图像二值化
2012-12-05
VC,VS实用脚本--批量删除VC及VS临时文件
2012-11-27
MoreWindows白话经典算法之七大排序第2版(高清)
2012-09-10
MoreWindows白话经典算法之七大排序(高清版)
2012-07-21
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人