
C++
yydsCF
这个作者很懒,什么都没留下…
展开
-
C++ 黑名单等概率 哈希映射
有这么一道算法题,给定N=7,数组{2,3,5},则从0-6中,除了2,3,5外,等概率取出其他的值,比如取出0的概率是1/4,这个还是有一些应用场景的,在用户已经拥有的东西外,等概率取出其他的东西。 可以用一种哈希映射,假定数组A的长度为m,把0~n-m-1的已经在黑名单的数值映射到n-m到n去,我们只在0到n-m-1取值,这时就是等概率了...原创 2022-06-26 10:55:50 · 386 阅读 · 0 评论 -
c++动态绑定与静态绑定
静态绑定 class base { public: void print() { printf("base\n"); } }; class derived:public base { public: void print() { printf("derived\n"); } }; class derived2:public derived { void print() { printf("derived2\n"); } }; int main(void) { base *原创 2021-05-15 20:53:24 · 365 阅读 · 0 评论 -
Effective C++ 笔记 不要使用#define来试图构造函数
如以下代码 #define MAX(a,b) (a)>(b)?(a):(b) int a = 5, b = 0; MAX(++a, b); a = 5, b = 0; MAX(++a, b + 10); 两次MAX调用后,a的值分别是多少呢? 由于define 仅仅只是粗暴的替换,替换后的表达式为: (++a)>(b)?(++a):(b) 显然++a要大于b,因此会执行两次++a。 如上,在使用宏构成函数时,无法确定用户如何使用你的宏,应尽量避免! ...原创 2021-05-09 18:07:55 · 100 阅读 · 0 评论