C++ Primer --- const_iterator 与 const类型的iterator

首页 | 新闻 | 交流 | 问吧 | 文档 | 手册 | 下载 | 博客

C++ Primer --- const_iterator 与 const类型的iterator

作者:  时间: 2011-06-08

      每一种容器类型都定义了自己的迭代器类型。

      以vector容器为例:  vector<int>::iterator iter;

      另外,每种容器类型还定义了一种const_iterator的类型,该类型只能用于读取容器内元素,但不能改变其值:

      for ( vector< string >::const_iterator iter = test.begin() ; iter != test.end(): ++iter)

                 cout<< *iter << end;             // 正确

                 但如果想改变其值:

                 *iter  = "";                             // 错误

      再看const 的 iterator:声明一个const的迭代器时就必须初始化,之后就不能改变它的值:

      vector<int> nums(10);

      const vector<int>::iterator cit = nums.begin();

      *cit = 1;                                            // 正确

      ++cit ;                                               // 错误

      这是一个很容易遗忘的技术细节。