这两个名字相信大家是耳熟能详的了,不过很多新手朋友却不知道它们到底为何物,小雨今天就来给朋友们通俗地解释一下。

       首先C++有一个标准模板库STL,里面有大量的容器和迭代器,是程序员前辈们智慧和血汗的结晶啊,我们先举一个例子。

       就拿数组来说,它在编程时应用极其广泛,我们可以通过数组对某种数据类型的集合进行操作,但是它有一个硬伤,就是要事先声明元素的个数,这就带来两个问题:1.如果声明的元素个数很少,就会不够用;2.如果你声明的很多,那么编译器会为它分配很多的空间,造成浪费。C++对于这个问题提供了很好的解决方式,那就是向量。

       向量就是一个容器,它可以不事先声明元素个数,而是动态分配内存,然后可以调用STL中的push_back()函数向向量中添加元素,再然后就可以像数组一样对其进行操作。

       当然,在操作上STL也提供了一种简便的方法,就是迭代器,每一个容器都有一个迭代器,它的本质是一个指针,功能是对容器内的元素进行遍历。

       到这里大家就理解了什么是容器和迭代器了吧,当然,如果相对STL有更深入的了解,那就涉及到大量的算法的知识,大家可以去网上找些算法的教程来学习,也可以参照小雨技术博客中数据结构与算法版块的知识,谢谢!