自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

蓝旭晨枫╮

无论这个世界对你怎样,都请你一如既往的努力、勇敢、充满希望

  • 博客(200)
  • 资源 (1)
  • 收藏
  • 关注

转载 调试器工作原理之二——实现断点

调试器工作原理之二——实现断点2013-01-02 00:14 2187人阅读 评论(0) 收藏 举报 分类:c(103)  汇编(26) 转自:http://blog.jobbole.com/23632/本文是关于调试器工作原理探究系列的第二篇。在开始阅读本文前,请先确保你已经读过本系列的第一篇(基础篇)。本文的主要内容

2016-08-23 09:44:10 681

转载 uv纹理坐标设定与贴图规则

uv纹理坐标设定与贴图规则1.什么是UV?  对于三维模型,有两个最重要的坐标系统,一是顶点的位置(X,Y,Z)坐标,另一个就是UV坐标。什么是UV?简单的说,就是贴图影射到模型表面的依据。 完整的说,其实应该是UVW(因为XYZ已经用过了,所以另选三个字母表示)。U和V分别是图片在显示器水平、垂直方向上的坐标,取值一般都是0~1,也 就是(水平方向的第U个像素/图片宽

2016-07-10 14:26:46 6145

转载 基本3D变换之World Transform, View Transform and Projection Transform

引言             在3D图形学中,基本几何变换是一个非常重要的操作。可以说,整个3D图形能够有效的显示,就是由于几个非常重要的基础3D变换贡献的。在前面的文章中,向大家承诺了,要详细的讲解在3D图形学中的三个基本的坐标变换。今天,就来像大家讲述,DirectX是如何进行变换。变换的目的               在我们讲解具体的变换工作之前

2016-07-10 14:24:37 680

转载 SetRenderState 设置渲染状态

SetRenderState 设置渲染状态【转】改变D3D中的渲染状态1). 设置着色模式:                                                         SetRenderState(D3DRS_SHADEMODE, D3DSHADE_FLAT) //设置平面着色模式SetRenderState(D3DRS_SHA

2016-07-10 14:21:42 1004

转载 用DirectX实现魔方(三)视角变换及缩放(附源码)

用DirectX实现魔方(三)视角变换及缩放(附源码)在本系列第一篇介绍过鼠标按键的功能,如下。左键拖拽 - 旋转魔方右键拖拽 - 变换视角滚轮 - 缩放魔方今天研究一下如何实现后面两个功能,用到的技术主要是Arcball,Arcball是实现Model-View-Camera的重要技术,这里的旋转基于Quaternion(四元数)来实现,当然也可以通过欧拉角来实现,但是欧

2016-07-10 14:19:36 1657 1

转载 IDirect3DDevice9::Present函数

版权声明:本文为博主原创文章,转载请注明出处http://blog.csdn.net/blues1021。使用:Device->Present(0, 0, 0, 0);作用:Swapthe back and front buffers.交换后台缓存和前台缓存,并提交到渲染管道,将后台缓存内容渲染出来。详解:HRESULT Present(// 参数1: NULL值是全部

2016-07-05 16:48:00 1927

原创 #1050 : 树中的最长路

#1050 : 树中的最长路时间限制:10000ms单点时限:1000ms内存限制:256MB描述上回说到,小Ho得到了一棵二叉树玩具,这个玩具是由小球和木棍连接起来的,而在拆拼它的过程中,小Ho发现他不仅仅可以拼凑成一棵二叉树!还可以拼凑成一棵多叉树——好吧,其实就是更为平常的树而已。但是不管怎么说,小Ho喜爱的玩具又升级换代了,于

2016-05-16 21:53:28 416

转载 互联网服务端技术——如何学(上)

互联网服务端技术——如何学(上)标签: 互联网架构技术经验学习2016-04-25 22:24 4892人阅读 评论(10) 收藏 举报版权声明:本文为博主原创文章,未经博主允许不得转载。老王正式工作快10年了,前一段时间有幸去给母校的学弟学妹们聊了聊人生和理想。回来以后,有学弟学妹问我该如何学习。老王于是很认真的思索了这个问题。后来做了这样一个假设

2016-05-09 08:25:47 394

转载 互联网服务端技术——如何学(下A)

互联网服务端技术——如何学(下A)2016-05-08 简单的老王 Hello World时间一周周的真是过的好快,又到老王扯技术淡的时间了,快回来听老王扯淡吧~当年老王刚刚走出学校踏进社会的时候,一个百度的老同事(人称瀚哥,虽然不是我的直接导师,也可以算半个了,后来对我帮助挺大的~)就问我,觉得在学校的时间过的快嘛?我说快啊,你看这本科+研究生七年,一晃眼就过了。他说

2016-05-09 08:22:29 429

原创 线段树之应用 ---- #1299 : 打折机票

#1299 : 打折机票时间限制:10000ms单点时限:1000ms内存限制:256MB描述 因为思念新宿的"小姐姐"们,岛娘计划6月份再去一趟东京,不过这次看来她需要自掏腰包。经过了几天的夜战,岛娘终于在体力耗尽之前,用Python抓下了所有6月份,上海至东京的全部共 n 张机票。现在请你帮助债台高筑的岛娘筛选出符合时间区间要求的

2016-05-08 16:59:31 603

转载 初级线段树讲解

初级线段树讲解---转转载关于线段树的讲解好久没写过算法了,添一个吧,写一个线段树的入门知识,比较大众化。上次在湖大,其中的一道题数据很强,我试了好多种优化都TLE,相信只能用线段树才能过。回来之后暗暗又学了一次线段树,想想好像是第三次学了,像网络流一样每学一次都有新的体会。把问题简化一下:在自然数,且所有的数不大于30000的范围内讨论一个问题:现在已知n条线段,把端

2016-05-08 12:59:06 509

转载 【线段树】线段树入门之入门

线段树的入门级 总结      线段树是一种二叉搜索树,与区间树相似,它将一个区间划分成一些单元区间,每个单元区间对应线段树中的一个叶结点。      对于线段树中的每一个非叶子节点[a,b],它的左儿子表示的区间为[a,(a+b)/2],右儿子表示的区间为[(a+b)/2+1,b]。因此线段树是平衡二叉树,最后的子节点数目为N,即整个线段区间的长度。      使用线

2016-05-08 12:54:49 332

转载 线段树(segment tree)

线段树(segment tree)线段树在一些acm题目中经常见到,这种数据结构主要应用在计算几何和地理信息系统中。下图就为一个线段树:(PS:可能你见过线段树的不同表示方式,但是都大同小异,根据自己的需要来建就行。)1.线段树基本性质和操作线段树是一棵二叉树,记为T(a, b),参数a,b表示区间[a,b],其中b-a称为区间的长度,记为L。线段树T(a,b)也可

2016-05-08 12:52:33 437

原创 #1040 : 矩形判断

#1040 : 矩形判断时间限制:1000ms单点时限:1000ms内存限制:256MB描述给出平面上4条线段,判断这4条线段是否恰好围成一个面积大于0的矩形。输入输入第一行是一个整数T(1每组数据包含4行,每行包含4个整数x1, y1, x2, y2 (0 输出每组数据输出一行YES或者NO,表示输入的4条线

2016-05-06 21:12:49 417

转载 线段树详解

从简单说起,线段树其实可以理解成一种特殊的二叉树。但是这种二叉树较为平衡,和静态二叉树一样,都是提前已经建立好的树形结构。针对性强,所以效率要高。这里又想到了一句题外话:动态和静态的差别。动态结构较为灵活,但是速度较慢;静态结构节省内存,速度较快。接着回到线段树上来,线段树是建立在线段的基础上,每个结点都代表了一条线段 [a , b]。长度为1的线段成为元线段。非元线段都有两个子结点,左结

2016-05-06 09:58:15 468

原创 将二叉树拆成链表

将二叉树拆成链表 描述 笔记 数据 评测将一棵二叉树按照前序遍历拆解成为一个假链表。所谓的假链表是说,用二叉树的 right 指针,来表示链表中的 next 指针。您在真实的面试中是否遇到过这个题? Yes 注意事项不要忘记将左儿子标记为 null,否则你可能会得到空间溢出或是时间溢出。样例

2016-04-25 12:35:04 1667

原创 网易游戏第二场 - 题目3 : 神奇的数

题目3 : 神奇的数时间限制:10000ms单点时限:1000ms内存限制:256MB描述Celin一直认为万物皆数,他总会花上很多的时间去研究和数相关的一些问题。最近他在研究一种神奇的数,这种数包含以下3个特征:(1) 这个数至少包含('2', '3', '5')中的任意一个数字;(2) 这个数不能出现'18';(3) 这个

2016-04-22 15:00:03 955

原创 用Trie树统计以给定字符串为前缀的单词个数

#1014 : Trie树时间限制:10000ms单点时限:1000ms内存限制:256MB描述小Hi和小Ho是一对好朋友,出生在信息化社会的他们对编程产生了莫大的兴趣,他们约定好互相帮助,在编程的学习道路上一同前进。这一天,他们遇到了一本词典,于是小Hi就向小Ho提出了那个经典的问题:“小Ho,你能不能对于每一个我给出的字符串,都在

2016-04-21 17:16:06 1911

原创 Lintcode 单词的添加与查找

单词的添加与查找 描述 笔记 数据 评测设计一个包含下面两个操作的数据结构:addWord(word), search(word)addWord(word)会在数据结构中添加一个单词。而search(word)则支持普通的单词查询或是只包含.和a-z的简易正则表达式的查询。一个 . 可以代表一个任何的字母。您在真实的面试中

2016-04-20 18:07:59 1007

原创 微软2016年实习生在线笔试第二题(403 Forbidden)

题目2 : 403 Forbidden时间限制:10000ms单点时限:1000ms内存限制:256MB描述Little Hi runs a web server. Sometimes he has to deny access from a certain set of malicious IP addresses while his

2016-04-19 23:32:07 908 5

转载 Trie树(c++实现)

原理先看个例子,存储字符串abc、ab、abm、abcde、pm可以利用以下方式存储      上边就是Trie树的基本原理:利用字串的公共前缀来节省存储空间,最大限度的减少无谓的字串比较。应用      Trie树又称单词查找树,典型的应用是用于统计,排序和保存大量的字符串(不仅用于字符串),所以经常被搜索引擎系统用于文本词频的统计。设计

2016-04-19 09:40:28 465

转载 教你怎么提高网速 最全提高网速方法

教你怎么提高网速 最全提高网速方法导语:在默认情况下Windows会限制百分之二十的网速,但是我们完全可以解除这个限制!下面为大家介绍不同系统下怎么提高网速。在默认情况下Windows会限制百分之二十的网速,但是我们完全可以解除这个限制!下面为大家介绍不同系统下怎么提高网速。一、win7怎么提高网速Win7提高网速的方法有很多,我这里给大

2016-04-18 22:32:03 10291

原创 关于Linux下的写时复制

关于写时复制在Linux中要启动一个新进程的方式通常是:先调用fork()函数fork出一个新的进程,然后在 新的进程中调用exec()函数来启动新的程序从而达到启动新程序的目的,比如采用下面的代码实现。intstart_prog(char*prog,char* args[]){  pid_t pid =fork(); // 创建子进程if(pid 0)return-1;if(pi

2016-04-18 10:58:43 543

原创 最多有多少个点在一条直线上

最多有多少个点在一条直线上 描述 笔记 数据 评测给出二维平面上的n个点,求最多有多少点在同一条直线上。您在真实的面试中是否遇到过这个题? Yes样例给出4个点:(1, 2), (3, 6), (0, 0), (1, 3)。一条直线上的点最多有3个。标签 /** * D

2016-04-16 18:45:57 815

转载 当你输入一个网址,实际会发生什么?

英文原文:What really happens when you navigate to a URL,编译:寒冬星空作为一个软件开发者,你一定会对网络应用如何工作有一个完整的层次化的认知,同样这里也包括这些应用所用到的技术:像浏览器,HTTP,HTML,网络服务器,需求处理等等。本文将更深入的研究当你输入一个网址的时候,后台到底发生了一件件什么样的事~1. 首先嘛,你

2016-04-14 08:59:39 362

转载 心跳包机制及Socket通信服务的心跳包

本文转自http://www.cppblog.com/tx7do/archive/2009/11/09/100513.html http://xue08161981.blog.163.com/blog/static/324996772009101010852137/ 心跳包之所以叫心跳包是因为:它像心跳一样每隔固定时间发一次,以此来告诉服务器,这个客户端还活着。事实上这是为了保持长连接,至

2016-04-13 11:11:44 497

转载 Socket心跳包机制

心跳包的发送,通常有两种技术方法1:应用层自己实现的心跳包 由应用程序自己发送心跳包来检测连接是否正常,大致的方法是:服务器在一个 Timer事件中定时 向客户端发送一个短小精悍的数据包,然后启动一个低级别的线程,在该线程中不断检测客户端的回应, 如果在一定时间内没有收到客户端的回应,即认为客户端已经掉线;同样,如果客户端在一定时间内没 有收到服务器的心跳包,则认为连接不可用。方法

2016-04-13 11:10:18 347

转载 动态规划之0-1背包问题

问题描述:    现有n件物品和一个容量为c的背包。第i件物品的重量是重量为w[i],价值是v[i]。已知对于一件物品必须选择取(用1表示)或者不取(用0表示),且每件物品只能被取一次(这就是“0-1”的含义)。求放置哪些物品进背包,可使这些物品的重量总和不超过背包容量,且价值总和最大。求解思路:    假设有5件物品,其重量分别是w={2,2,6,5,4},价值分别是v=

2016-04-11 10:32:54 365

转载 构造/析构/赋值 函数

条款10:令operator=返回一个reference to *this赋值操作符运算是由右向左运算的。例如一个连锁赋值[cpp] view plain copy "font-size:14px;">int x, y, z;  x=y=z=15;  编译器解释时时这样的:x=(y=(z=15));先给z赋

2016-04-10 22:40:29 348

转载 以对象管理资源、在资源管理类中小心coping行为、在资源管理类中提供对原始资源的访问

在系统中,资源是有限的,一旦用完必须归还给系统,否则可能会造成资源耗尽或其他问题。例如,动态分配的内存如果用完不释放会造成内存泄漏。这里说的资源不仅仅是指内存,还包括其他,例如文件描述符、网络连接、数据库连接、互斥锁等。在任何情况下都要把不使用的资源归还系统是一件非常困难的事情。尤其是考虑到异常、函数内多重回传路径等。基于对象的资源管理办法几乎可以消除资源管理的问题。下面介

2016-04-10 22:33:26 318

原创 考虑写出一个不抛出异常的swap函数

条款25:考虑写出一个不抛出异常的swap函数swap是STL中的标准函数,用于交换两个对象的数值。后来swap成为异常安全编程(exception-safe programming,条款29)的脊柱,也是实现自我赋值(条款11)的一个常见机制。swap的实现如下:namespace std{ templatetypename T> void swap(T& a, T&

2016-04-10 22:25:06 457

原创 了解typename的双重意义

使用模板时,可以用typename,也可以用class templateclass T> class Widget; templatetypename T> class Widget;12两者没有什么不同。作为template的类型参数,意义完全相同。在使用习惯上来说,很多人喜欢使用typename,因为这暗示参数并非一定要是个class类型。C++有时不会把class

2016-04-10 22:17:27 519

转载 千里之行,始于足下的博客园《Linux内核设计与实现》读书笔记

当前标签: linux-kernel1、《Linux内核设计与实现》读书笔记(一)-内核简介 wang_yb 2012-08-15 23:33 阅读:1719 评论:2  2、《Linux内核设计与实现》读书笔记(二)- 内核开发的准备 wang_yb 2012-08-16 10:20 阅读:1474 评论:0  3、《Linux内核设计

2016-04-10 22:14:07 414

原创 进程创建

1、许多其它操作系统提供spawn产生进程的机制。而Unix采用与众不同的方式,它把上述步骤分解到两个单独的函数中去执行:fork()和exec()。首先,fork()通过拷贝当前进程创建一个子进程、子进程与父进程的唯一区别就在一进程ID。PID、PPID(父进程进程号)exec()函数负责读取可执行文件并将其载入地址空间开始运行。2

2016-04-10 22:13:13 403

原创 Linux中getopt()函数用法

1、getopt()2、getopt_long()下面来讲getopt_long函数,getopt_long函数包含了getopt函数的功能,并且还可以指定“长参数”(或者说长选项),与getopt函数对比,getopt_long比其多了两个参数:       int getopt(int argc, char * const argv[],

2016-04-10 22:10:22 1261

转载 gdb调试多线程

gdb使用gdb是非常强大的调试工具,在文本模式下使用。使用方法可以参考陈皓的两篇文章 用GDB调试程序(一) 用GDB调试程序(二)gdb常用命令在下表列出:命令描述backtrace(或bt)查看各级函数调用及参数finish连续运行到当前函数返回为止,然后停下来等待命令

2016-04-10 22:08:45 423

转载 fork调用拷贝缓冲区

fork在创建子进程时,子进程会拷贝父进程的缓冲区。下面是一道经常见到的笔试题。输出多少个"-“?[cpp] view plain copy "font-size:14px;">#include  #include  int main()  {          int i;          for( i=0;i

2016-04-10 21:54:44 332

转载 无锁编程:lock-free原理

定义无锁编程是指在不使用锁的情况下,在多线程环境下实现多变量的同步。即在没有线程阻塞的情况下实现同步。这样可以避免竞态、死锁等问题。原理CAS是指Compare-and-swap或Compare-and-Set CAS是一个原子操作,用于多线程环境下的同步。它比较内存中的内容和给定的值,只有当两者相同时(说明其未被修改),才会修改内存中的内容。 实现如下:int compa

2016-04-10 21:02:08 505

转载 使用valgrind检查内存使用问题

介绍安装使用使用未初始化内存越界使用内存内存泄漏两次释放内存使用已经释放的内存不匹配使用newdelete或newdelete介绍Valgrind是用于内存检泄漏检测、内存调试以及性能分析的工具集。这里主要介绍其用与内存相关的工具Memcheck,它可以发现大部分的内存问题,例如内存泄漏,使用未初始化内存、内存越界等问题。安装我用的时Ubun

2016-04-10 21:00:25 339

转载 gdb调试多线程

gdb使用gdb是非常强大的调试工具,在文本模式下使用。使用方法可以参考陈皓的两篇文章 用GDB调试程序(一) 用GDB调试程序(二)gdb常用命令在下表列出:命令描述backtrace(或bt)查看各级函数调用及参数finish连续运行到当前函数返回为止,然后停下来等待命令fram

2016-04-10 20:59:08 506

设计模式,Design Patten

想要了解或深入理解设计模式的朋友可以读一读,很不错的一本书!

2015-08-20

空空如也

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

TA关注的人

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