迅雷
1.sizeof一个类。
struct s1
{
char a[8];
};
struct s2
{
double d;
};
struct s3
{
s1 s;
char a;
};
struct s4
{
s2 s;
char a;
};
sizeof s4会得到16.因为s2大小为8。因此对界为8的倍数。虽然只占了9个空间,但是sizeof还是16.而s3对界为1,所以为9
sizeof一个string在vs下得到的是28.
至于sizeof一个类。统计的是实例化后的东西。包含正常的数据。还有一个虚函数列表指针位置。虚函数列表。静态成员不在考虑范围内。
空类sizeof为1,就是没有数据成员。但是如果有虚函数,那么就会成为4.
如果是多重继承多个有虚函数的类。记住一个父类对应一个虚函数列表,都有对应的内存消耗哦。
http://blog.csdn.net/hairetz/article/details/4171769
sizeof(a=1)
a的值并不改变的。也就是这个等式是不运算的。
2.霍夫曼编码。
这个是一种变长编码,根据某些元素出现的频率进行编码。比如,a b c d分别出现,1,2,3,4次。那么先把ab合并一个树。然后合并后ab和为3,334,ab树和c再合并为一个树。最后在和d这个树合在一起。详细介绍可以看这篇文章。http://coolshell.cn/articles/7459.html
霍夫曼编码可以达到一个编码绝对不是另一个的头部。
3.希尔排序。