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

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

      以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 ;                                               // 错误

 

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章