• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
日常任务
天天挖坑
博客园 首页 新随笔 联系 订阅 订阅 管理
上一页 1 2 3 4 5 6 7 下一页

2013年4月4日

贪吃蛇
摘要: 在C++吧发现2个贪吃蛇源码:#include<iostream>#include<windows.h>#include<conio.h>#include<time.h>#include<stdlib.h>using namespace std;int GameOver=0;struct Body//蛇身(链表结构){ int x,y;//蛇身结点坐标 Body *next;//下一个结点};void SetPos(int i,int j)//设定光标位置{ COORD pos={i-1,j-1};//坐标变量 HANDLE Out= 阅读全文
posted @ 2013-04-04 22:34 fripSide 阅读(301) 评论(0) 推荐(0)
 
 

2013年3月10日

尾递归
摘要: 普通递归中进行了大量重复计算,同时又容易栈溢出。与普通递归相比,由于尾递归的调用处于方法的最后,因此方法之前所积累下的各种状态对于递归调用结果已经没有任何意义,因此完全可以把本次方法中留在堆栈中的数据完全清除,把空间让给最后的递归调用。这样的优化便使得递归不会在调用堆栈上产生堆积,意味着即时是“无限”递归也不会让堆栈溢出。这便是尾递归的优势。下面来看一下普通递归与尾递归的比较:#pragma once#include <iostream>#include <ctime>#include <windows.h>using namespace std;int f 阅读全文
posted @ 2013-03-10 15:03 fripSide 阅读(349) 评论(0) 推荐(0)
 
虚函数初探
摘要: 今天读了coolshell博主几年前的旧文,C++虚函数表解析,代码如下:#pragma once#include <iostream>using namespace std;class Base{public: virtual void f(){ cout<<"Base::f()"<<endl;} virtual void g(){ cout<<"Base::g()"<<endl;} virtual void h(){ cout<<"Base::h()"< 阅读全文
posted @ 2013-03-10 14:55 fripSide 阅读(228) 评论(0) 推荐(0)
 
 

2013年2月27日

文件操作
摘要: fopen, _wfopen ,_wfopen_serrno_t fopen_s( FILE** pFile, const char *filename, const char *mode );errno_t _wfopen_s( FILE** pFile, const wchar_t *filename, const wchar_t *mode );这些是fopen, _wfopen的版本与安全增强的CRT中的安全功能Unicode 支持fopen_s支持 Unicode 文件流。若要打开新的或现有的 Unicode 文件,请通过指定预期编码的ccs标志传递给fop... 阅读全文
posted @ 2013-02-27 14:41 fripSide 阅读(437) 评论(0) 推荐(0)
 
 

2013年2月25日

unicode相关
摘要: http://blog.csdn.net/timothyfly/article/details/7655193C++读取unicode文本1.unicode概念unicode字符集,什么是字符集,字符集就是一个映射表计算机通过它找到对应的字符;unicode的把全球所有文字都做了映射。utf-8、utf-16、utf-32都是编码方式,各自实现各自的方便。utf-8来说利于传输因为它是变长的,有一个字节的(ascii在utf-8中都只占一个字节并且是一致的),俩的,三个的。有一个传输出错不会影响其他的。如果是固定长度的多字节编码,少一个字节后面的往前补上,所有的字符编码都变了,都成乱码了。另一 阅读全文
posted @ 2013-02-25 23:08 fripSide 阅读(180) 评论(0) 推荐(0)
 
动态规划
摘要: 1.求最长公共子串#pragma once#pragma once#include <random>#include <iostream>#include <tchar.h>#include <bitset>#include <cassert>#include <crtdbg.h>using namespace std;//-----------------------------------------------//a:97 z:122 A:65 Z:90//生成随机字符串//--------------------- 阅读全文
posted @ 2013-02-25 00:38 fripSide 阅读(169) 评论(0) 推荐(0)
 
 

2013年2月13日

智能指针的实现
摘要: 智能指针(smart pointer)是存储指向动态分配(堆)对象指针的类,用于生存期控制,能够确保自动正确的销毁动态分配的对象,防止内存泄露。它的一种通用实现技术是使用引用计数(reference count)。智能指针类将一个计数器与类指向的对象相关联,引用计数跟踪该类有多少个对象共享同一指针。每次创建类的新对象时,初始化指针并将引用计数置为1;当对象作为另一对象的副本而创建时,拷贝构造函数拷贝指针并增加与之相应的引用计数;对一个对象进行赋值时,赋值操作符减少左操作数所指对象的引用计数(如果引用计数为减至0,则删除对象),并增加右操作数所指对象的引用计数;调用析构函数时,构造函数减少引.. 阅读全文
posted @ 2013-02-13 20:30 fripSide 阅读(193) 评论(0) 推荐(0)
 
 

2013年2月12日

windows多线程编程速记(一)
摘要: 一.几个基本概念1.内核对象内核对象(kernel object)是一个由操作系统内核创建并只能由操作系统内核访问的数据结构。例如:文件映像,IOCP端口,作业对象等。2.句柄由于内核对象的数据结构只能由操作系统内核去访问,所以应用程序不能直接在内存中定位并修改这些对象,只能通过windows api去操作这些对象。在每一个内核对象被创建的时候,我们都可以得到一个唯一标识该内核对象的句柄值(HANDLE)。也就是通过这个句柄,然后调用一些API函数,对这个句柄所标识的内核对象进行访问和修改,这个句柄称为“内核对象句柄”,相当于内核对象的“身份证”。在32位系统中HANDLE为32位,64位系统 阅读全文
posted @ 2013-02-12 11:43 fripSide 阅读(898) 评论(0) 推荐(0)
 
 

2013年2月8日

信号量
摘要: 一、关于信号量1、在信号量中有一个内置的计数值,用于对资源进行计数;同时它通过内置的互斥机制保证在有多个线程试图对计数值进行修改时,在任一时刻只有一个线程对计数值进行修改。2、信号量的两个核心操作是Up操作(提高计数值)和Down操作(降低计数值):1)Down操作:检查信号量的计数值是否大于零1》若大于零,信号量的计数值减一(即用掉了一个信号量计数了),线程继续运行;2》若等于零(也就是线程不能获得所需的信号量了),于是进入睡眠状态。Down操作的原子性保证了一旦一个线程对信号量的操作开始,其他线程就不能访问,知道操作完成或阻塞。2)Up操作用于线程释放对信号量的所有权,提高信号量的计数值。 阅读全文
posted @ 2013-02-08 09:29 fripSide 阅读(400) 评论(0) 推荐(0)
 
 

2013年2月5日

快速排序
摘要: 1.如果待排数组array的大小是0或1则结束递归返回这个数组。2.从数组中选择一项作为基准项,把剩下的元素分成2个不相关的组。比该数据小的数据排列在左边,比该数据大的数据排列在右边。SmallThanPivot = {所有<pivot的元素} LargerThanPivot = {所有>pivot的元素}3.返回重排后的列表,重复前面的过程分别对左边和右边的序列进行快速排序。QuickSort(SmallThanPivot);Pivot;QuickSort(LargerThanPivot);75,70,65,84,98,78,100,93,55,61,81,68 //选取75为基 阅读全文
posted @ 2013-02-05 17:04 fripSide 阅读(254) 评论(0) 推荐(0)
 
 
上一页 1 2 3 4 5 6 7 下一页

公告


博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3