摘要:
智能指针模板类的实现,主要有几个关键点,首先是如何实现不同对象的引用记数,才能保证当引用记数增减之后可以,所有对象的引用记数都同步增减;所以不能简单的用一个unsigned成员,因为每个对象中成员的值会各不相同,用一个unsigned指针就可以了,当初始化时从堆中动态分配一个unsigned,另外,再做了赋值操作和析构操作之后要检查引用记数是否变为0。 1 tempate class SmartPointer { 2 public: 3 SmartPointer(T *ptr) { 4 ref = ptr; 5 ref_c... 阅读全文
摘要:
1.当m n时就比较麻烦一点,基本思路还是和第一种情况是一样的,问题是怎样才能利用randn()生成大于n个随机数呢?randn2 = n * (randn() - 1) + randn()可以生成1~n2之间的数,那么只要想办法生成1-A的数,A >= m,即可,randn3 = n * (randn2() - 1) + randn2();这样就可以得到randnk 生成1-A的数,A = nk,然后再按照第一步的方法即可生成1-m的随机数了! 1 //m m) { 5 x = randn(); 6 } 7 return x; 8 } 9 10 // m ... 阅读全文