C++
goldcattle
hello world
展开
-
iterator 的使用
iterator有istream_iterator ostream_iterator forward iterator bidirection iterator random access iterator 这些是一些常用的iterator根据功能分的。 另外还有 insert iterator 中有 back_insert_iterator or back_insert() f原创 2004-10-09 22:29:00 · 2197 阅读 · 0 评论 -
一道考察递归思想的面试题
打靶成绩的可能性一个人打靶,成绩为0~10之间的任意一个整数。包括0和10。一共打了10次总共得分89分。问得分的可能性。分析如下将问题看成一个规划问题。转化成如下问题。有10个位置,每个位置上可以赋值0~10之间的整数,使得所有位置上的值的总和为11分。问排列的可能性。将问题进一步简化:有3个位置,使得总和为4分的赋值方案有几种?手算为15种作为校验标准。#include "stdafx.h原创 2005-02-26 17:48:00 · 1437 阅读 · 0 评论 -
mp3player
http://www.csee.umbc.edu/courses/undergraduate/CMSC391/summer04/burt/pjrc_2004_02_07/tech/mp3/index.html原创 2005-02-15 00:35:00 · 1134 阅读 · 0 评论 -
STL 源代码分析
chap1 1. STL的价值在于两个方面:首先就像MFC和VCL一样为我们的RAID开发提供了一些必要的支持。另一个方面是从设计模式的角度出发,真正实现了一个以泛型思维为基础的抽象实现库。也就是说,STL所实现的是依据泛型思维设起来的一个概念结构,这个是以抽象概念为主体而非以实际的类为主体的结构。形成了一个严谨的接口标准。在这个抽象的接口下,各个组件具有最大的独立性,通过所谓的iterato原创 2004-12-19 23:40:00 · 2677 阅读 · 0 评论 -
keyboard speed
今天在实现terrain rendering的时候我刚开始的时候使用了wndproc中的message机制来实现通过键盘对方向的控制,但是发现有个问题是在图像显示的时候变得不连续。有点跳跃。分析原因,可能是message的机制使得处理有点延时.后来使用dx的lib中的键盘处理机制,一切解决了。变得非常的smooth。有空在研究其实现机制。原创 2004-11-20 21:47:00 · 1388 阅读 · 0 评论 -
多用const 尽量不使用#define
昨天晚上在debug别人的一个程序的时候,发现一个问题数据老不对。我是从算法上考虑的。想了半天也想不出有什么不对的地方。今天早上发现了这样一条语句:p= p/PAN_PERUNIT;这个时候我突然想到 #define PAN_PERUNIT 0.0129*pi/180原因找到了是这个define的缘故。所以在C++中鼓励尽可能使用const而不用#define。哎,花了一个晚上时间居然发现是这个问原创 2004-10-14 09:57:00 · 1399 阅读 · 2 评论 -
boost thread(1)
想自己试试thread好用不好用。这是boost的一大特色。如果加到standard C++中的话,那么确实能够提高效率。 晚上调试thread的时候刚开始遇到一个问题告诉我boost_thread-vc71-mt-gd-1_31.dll找不到。这个问题是这样的,因为在jam的时候只是将release版本的dll拷到了windows/systems32下面去了,没有将debu原创 2004-10-11 23:15:00 · 2690 阅读 · 2 评论 -
boost thread (2)
很多程序实现的时候并没有设计成可重入。这种函数在使用的时候一定要小心,特别是在多线程的情况下。因为当别的函数正在调用这个函数时,你再调用这个函数,那么很可能得到的结果是unpredictive的。一般情况下如果这个函数使用了静态的数据那么这样的程序一般是不可重入的。例如std::strtok就是一个不可重入的函数,因为它是利用静态数据来保存被分成token的string的。一个不可重入程序原创 2004-10-12 21:18:00 · 2974 阅读 · 2 评论 -
Boost 安装
安装boost比以前简单多了。第一次听说boost以为是adaboost一种算法。后来才知道是一个C++libray,一直只是耳闻。没有使用过。所以试用之。step1.从www.boost.org下载boost库 step2 在 tools/build/jam_src目录下 运行build.bat来生成jamstep3 设置环境变量 PATH= C:/Program Files/Microsoft原创 2004-10-10 22:23:00 · 1901 阅读 · 1 评论 -
关键词__gc
__gc是managed C++ extension中的东西对应的有__value.两者的区别在于__gc 一般对应于比较复杂的class.当该成员生命周期结束时会自动destruct掉。这样声明以后即使你在显示调用析勾函数也是无效的。这是析勾的工能是通过CLR来实现的。另外该关键词好像不能全局使用。__value对应于小的struct。详细的功能见MSDN(即用即查)这种关键词,我是不会去常使用原创 2004-10-10 22:09:00 · 1152 阅读 · 0 评论 -
迭代器使用的注意点
虽然迭代器比较好用但是确保迭代器的正确使用还是有点难度的。看下面一段程序里面隐含了一些常见的错误int main(){1 vector e;2 copy(istream_iterator(cin),istream_iterator(),back_inserter(e));3 vector::iterator first = find(e.begin(),e.end(),"01/01/0原创 2005-07-29 17:23:00 · 1632 阅读 · 0 评论