类别归档:杂项

RSS feed of 杂项

最后更新于 .

呵呵,废话不多说,先看看到底是啥好玩的语言特性~~
1.

#include <iostream>
#include <string>
#include <vector>
#include <map>
using namespace std;
int main(int argc,char* argv[])
{
    char a[20]=“world”;
    printf(“%c\n”,a[2]);
    printf(“%c\n”,2[a]);
    return 0;
}

对于这段代码,你觉得是否会编译通过,并且正确运行呢?

2.

#include <iostream>
#include <string>
#include <vector>
#include <map>
using namespace std;
class Foo {
  public ...

最后更新于 .

前段时间无聊的找出了尘封许久的ipod shuffle,听了n多遍所有的歌之后终于忍不住想要来次大换血,但是又不想用iTunes(你总不能逼我在家里装一次,到公司再重注册一次吧……)
    呵呵,其实解决方案也简单啦,公司有位大拿写了一个小软件,直接放到ipod里执行,就可以把所有音乐转化成ipod要求的格式啦,原文在此。

使用iTunes太麻烦,关键是它极其缓慢的启动速度,对于iPod Shuffle来说,拷贝歌曲以后直接就可以听是最方便的。经过对iPod Shuffle文件格式的研究,写了一个软件,可以代替iTurns向iPod Shuffle里面传送歌曲。
使用方法:把MiniTunes拷贝到iPod上,把歌直接拷贝到iPod上,歌曲可以放任意文件夹,但必须是英文的,运行MiniTunes即可。
但需要注意:
iPod不支持中文,所以MiniTunes会自动重命名所有的中文歌曲和中文目录,但仅仅是mp3文件。这个应该也是iPod需要iTunes才能传输歌曲的原因。
MiniTunes会搜索当前目录下的所有歌曲以及子文件夹里面的歌曲。由于中文的原因,MiniTunes是不能放到中文目录下用的。

截图如下:

1245828774_capture

下载MiniTunes

 

最后更新于 .

STL比较出名的有如下三个:

一个是SGI STL。STL之父离开HP之后就去了SGI(当然不是去搞侏罗纪公园),然后和Matt Austern这些STL大牛一起搞了SGI STL。SGI STL技术比较新,很规范(但是代码读起来未必好懂) 像concept checking这些技术用的不少,boost graph library的想法也是在这其中产生的。后来有人觉得sgi stl很好,兼容性不够(其实现在已经很不错了),就弄了个stlport项目,顺便提供咨询服务赚点小钱。

一个是RougeWave STL,是Borland C++ Builder 5.0及以前版本采用的STL实现(6.0以后改用stlport)。RougeWave公司在C++程序库领域应该说是鼎鼎大名,在C++标准化过程中出力甚多(比如IOStream)。不过这个STL版本似乎老了点,更新不太勤快,关键是贵(RougeWave 的东西一向如此),所以被Borland一脚踢了。

一个是Visual C++里的STL,作者P.J. Plauger,所以一般也说pj stl。其实这份STL是他公司的产品(他这个公司一共也就3个人,所以人均GDP一定很高),不过他跟MS的关系实在是好得有点古怪 ...

最后更新于 .

有人在Quake III的源代码里面发现这么一段用来求平方根的代码:

/*================SquareRootFloat================*/
float SquareRootFloat(float number) {
    long i;
    float x, y;
    const float f = 1.5F;
    x = number * 0.5F; y = number;
    i = * ( long * ) &y;
    i = 0×5f3759df - ( i >> 1 ); //注意这一行 y = * ( float * ) &i; y = y* ( f - ( x * y * y ) );
    y = y * ( f - ( x * y * y ) );
    return number * y;
}


0×5f3759df? 这是个什么东西? 学过数值分析就知道,算法里面求平方根一般采用的是无限逼近的方法 ...