程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> 關於C++ >> C++中const 與 迭代器(iterator) 使用 詳解

C++中const 與 迭代器(iterator) 使用 詳解

編輯:關於C++

迭代器(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

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved