当前位置:天才代写 > tutorial > C语言/C++ 教程 > C++中const 与 迭代器(iterator) 利用 详解

C++中const 与 迭代器(iterator) 利用 详解

2017-11-02 08:00 星期四 所属: C语言/C++ 教程 浏览:499

迭代器(iterator) 是一种指针范例, 也分const指针自己(地点) 和 const指针所指的值, 两种环境;

可是写法和const内置指针有所差异;

char * const 相当于 const container<>::iterator; 可以修改指针所指的值, 但不能修改指针的地点;

const char * 相当于 container<>::const_iterator; 可以修改指针地点, 但不能修改指针所指的值;

留意代码示例, 两种const和迭代器;

代码:

/* 
 * effectivecpp.cpp 
 * 
 *  Created on: 2013.11.13 
 *      Author: Caroline 
 */
      
/*eclipse cdt ; gcc 4.7.1*/
      
#include <iostream>  
#include <vector>  
      
int main (void) {  
      
    std::vector<int> iv = {1, 2, 3, 4, 5};  
    const auto it = iv.begin(); //const 迭代器 相当于 T* const, 指针自身(地点)是牢靠的;  
    std::cout << "*it = " << *it << std::endl;  
    //++it; //错误  
    *it = 10;  
    std::cout << "*it = " << *it << std::endl;  
      
     iv = {1, 2, 3, 4, 5};  
     auto cit = iv.cbegin(); //cbegin, 相当于const_iterator, 指针所指物是牢靠的;  
     //std::vector<int>::const_iterator cit = iv.begin();  
     std::cout << "*cit = " << *cit << std::endl;  
     ++cit;  
     //*cit = 10; //错误  
     std::cout << "*cit = " << *cit << std::endl;  
      
    return 0;  
      
}

作者:csdn博客 Spike_King

 

    关键字:

天才代写-代写联系方式