zoukankan      html  css  js  c++  java
  • C++学习基础三——迭代器基础

    迭代器分为两种:一种是iterator,另一种是const_iterator。
    两者都可进行访问容器中的元素,不同之处是:
    (1)const_iterator类型只能用于读取容器内的元素,不能更改其值;而iterator可以更改其值。
    (2)对const_iterator类型进行解引用时,返回值是一个const值,不允许对其解引用赋值。
    另外不要把const_iterator对象与const的iterator对象混淆,其不同之处是:
    (1)声明const迭代器时必须初始化,一经初始化后就不能改变它的值,但是可以改变其所指对象的值。
    (2)const_iterator对象可以改变其值,但是不允许改变其所指对象的值(因为对其进行解引用时,返回的是const值,不允许对其重新赋值)。

    iterator类型迭代器的代码片段如下:

    vector<string> vec1;
    for(vector<string>::iterator iter = vec1.begin();iter != vec1.end(); iter++)
    {
    	cout<<*iter<<endl;
    	*iter = "";//ok
    }
    

     const_iterator类型迭代器的代码片段如下:

    for(vector<string>::const_iterator iter = vec1.begin();iter != vec1.end(); iter++)
    {
    	cout<<*iter<<endl;
    	*iter = "";//error,because return value is const
    }
    

     const与const_iterator使用区别的代码片段如下:

    vector<string>::const_iterator iter1 = vec1.begin();
    *iter1 = "";//error, *iter1 is const
    iter1++;//ok
    
    const vector<string>::iterator iter2 = vec1.begin();
    *iter2 = "";//ok
    iter1++;//error,cannot change const value
    

     后续更新中...

  • 相关阅读:
    1451. Rearrange Words in a Sentence
    1450. Number of Students Doing Homework at a Given Time
    1452. People Whose List of Favorite Companies Is Not a Subset of Another List
    1447. Simplified Fractions
    1446. Consecutive Characters
    1448. Count Good Nodes in Binary Tree
    709. To Lower Case
    211. Add and Search Word
    918. Maximum Sum Circular Subarray
    lua 时间戳和时间互转
  • 原文地址:https://www.cnblogs.com/calence/p/5677519.html
Copyright © 2011-2022 走看看