试图编写对序列容器和关联容器都适用的代码几乎是毫无意义。很多成员函数仅当器容器为某一种类型时才存在。
不同的容器效果是不同的,它们有非常明显的优缺点。它们不是被设计来交换使用的,你无法掩盖这一点。
要想减少在替换容器类型时所需要修改的代码,可以把容器隐藏在一个类中,并尽量减少那些类接口(而使外部)可见的、与容器相关的信息。
如下类CustomerList
class Customer { ... };
class CustomerList
{
public:
...
private:
typedef std::list<Customer> CustomerContainer;
typedef CustomerContainer::iterator CCIterator;
CustomerContainer customer;
};
如果要修改底层容器类型,只需要修改std::list即可。