对于Container类来说,除了一般的CRUD操作以及容器类自身的特点以外,最重要的是理解其如何实现traverse(遍历), sort(排序),search(查找)等操作。
1) C++采用generic algorithm。即将container看作是变化的,例如array, list, vector, queue等。
2) C# 采用了纯粹的OO方式。对象本身实现IComparable以实现对象实例之间的比较,由容器类本身提供sort等功能。这样对象类与容器类各司其责。
IComparable Interface:
This interface is implemented by types whose values can be ordered or sorted. It requires that implementing types define a single method, CompareTo(Object),
that indicates whether the position of the current instance in the sort order is before, after, or the same as a second object of the same type.
The instance's IComparable implementation is called automatically by methods such as Array::Sort and ArrayList::Sort.
All numeric types (such as Int32 and Double) implement IComparable, as do String, Char, and DateTime.
Custom types should also provide their own implementation of IComparable to enable object instances to be ordered or sorted.