写在前面用自己的话分析清楚~智能指针是如何使用的?强指针是如何实现?弱指针如何转化为强指针?智能指针的使用智能指针的使用必须满足如下条件:这个类需要继承自RefBase为什么需要虚析构函数?虚析构函数是为了解决这样的一个问题:基类的指针指向派生类对象,并用基类的指针删除派生类对象。虚函数的出现是为了...
分类:
其他好文 时间:
2014-07-22 22:46:36
阅读次数:
446
list
----------------------------------------------------------------------
??为什么很多在算法库里有的算法还要在类的成员函数里重新实现一遍?
-->1.因为算法库里的是通用的,对于具体的类来说效率不高。
比如说 reverse 如果直接用 stl_algo.h 里的 reverse,会再调用 iter_swap,
而 iter_swap 的实现方法是借用临时变量来交换两个迭代器指向的元素,这样会调用
好几次构造函数、拷贝方法、析构...
分类:
其他好文 时间:
2014-07-22 00:27:35
阅读次数:
357
点击打开链接
题意:在一个王国有N个城市,M条路。选择N条路,构成一个环路。求出最小距离。
解析:构图,最小费用最大流。将源点和终点至个点花费记作0,然后将所有路径流量记作1或同一值。
#include
#include
#include
#include
using namespace std;
const int maxn = 10000;
const int maxm = 100...
分类:
其他好文 时间:
2014-07-21 22:47:37
阅读次数:
263
点击打开链接
题意:给你一张N个节点的无向图,然后给出M条边,给出第 I 条边到第J条边的距离。然后问你是否存在子环,如果存在,则输出最成环的最短距离和
解析:构图:选定源点及汇点,然后将源点至个点流量置为1,花费置为0.然后使用最小费用流,当返回值流量和,即flow
其余和tour一样求法,处理一下某两点距离为最短距离即可。
#include
#include
#include
#...
分类:
其他好文 时间:
2014-07-21 22:28:07
阅读次数:
251
.net的GC机制有两个问题:首先GC并不能释放所有资源,它更不能释放非托管资源。其次,GC也不是实时的,所有GC存在不确定性。为了解决这个问题.NET提供了析构函数public class DisposeClass : System.IDisposable{ //供程序员显式调用的Dispose方...
分类:
其他好文 时间:
2014-07-21 14:16:37
阅读次数:
244
点击打开链接
题意:在一张N * M 的图中,有 n个房子和n个人。问最少使用多少总步数让每个房子都有且仅有一个人.
解析:构图。选取源点和汇点,从源点到人连通,费用为0(因为题目要求的是人到房子的费用)。以第i个人与第j所房子的距离作为当前费用进行构图,由于题目并不需要求出最大流( 也没给出来),因此所有连通路径的流量设置为一个相同的权值即可。
然后使用费用流求出最小费用。
#inclu...
分类:
其他好文 时间:
2014-07-21 13:38:37
阅读次数:
226
上篇文章中,我们介绍了为什么应该彻底避免编写拷贝构造函数和赋值操作符。今天这篇我们讨论下为什么应该避免在析构函数中编写代码。即让析构函数为空。
例如:
virtual ~MyClass()
{
}
我们用空析构函数这个术语表示花括号内没有代码的析构函数。
需要编写析构函数可能有如下几个原因:
在基类中,可能需要声明虚拟析构函数,这样就可以使用一个指向基类的指针指向一个派生类的实例...
分类:
其他好文 时间:
2014-07-21 13:33:46
阅读次数:
188
0.两个要点a) 一个空类,编译器自动合成默认无参构造函数、析构函数、拷贝构造函数、赋值运算符。b) 在编写类的时候,必须严格区分对象是否可复制。1.运算符重载之 string类1.1 运算符重载的几个要点:a) 运算符重载可以有成员函数和友元函数的形式,后者比前者多一个参数。b) =和+=必须重载...
分类:
编程语言 时间:
2014-07-19 18:30:05
阅读次数:
206
构造函数为什么不能是虚函数从存储空间角度,虚函数对应一个指向vtable虚函数表的指针,这大家都知道,可是这个指向vtable的指针其实是存储在对象的内存空间的。问题出来了,如果构造函数是虚的,就需要通过 vtable来调用,可是对象还没有实例化,也就是内存空间还没有,怎么找vtable呢?所以构造...
分类:
编程语言 时间:
2014-07-19 00:05:20
阅读次数:
321
这是个提醒,算是吧!如果详细原理过程,可能会有一个大篇幅。但这里不想多加赘述,只说说它的破坏力!最近写了个图像处理框架,要做个基类来handle众多子类,写之前一直申称:要注意内存管理,写好析构函数。谁知最后还是偏偏忘记了将基类析构函数virtual化,结果在操控基类释放内存的一段程序中,发现基类释...
分类:
编程语言 时间:
2014-07-18 12:03:57
阅读次数:
261