C++ STL 学习

来源:互联网 发布:fastboot刷gapps软件 编辑:程序博客网 时间:2024/04/24 18:59

 

STL的关键实际上是iterator。STL算法作为参数使用iterator,他们指出一个范围,有时是一个范围,有时是两个。STL容器支持iterator,这就是为什么我们说 list<int>::iterator,或 list<char>::iterator, 或 list<string>::iterator.

    iterator有很好的定义继承性。它们非常有用。某些iterator仅支持对一个容器只读,某些仅支持写,还有一些仅能向前指,有一些是双向的。有一些iterator支持对一个容器的随机存取。

    STL算法需要某个iterator作为“动力” 如果一个容器不提供iterator作为“动力”,那么这个算法将无法编译。例如,list容器仅提供双向的iterator。通常的sort()算法需要随机存取的iterator。这就是为什么我们需要一个特别的list成员函数sort()。

    要合适的实际使用STL,你需要仔细学习各种不同的iterator。你需要知道每种容器都支持哪类iterator。你还需要知道算法需要那种iterator,你当然也需要懂得你可以有哪种iterator。