constポインタconst反復器


#include <iostream>
#include <vector>
#include <string>

using namespace std;

void main()
{
	int nNum1 = 111;  
	int nNum2 = 222;  
	int* pNum = &nNum2; 
		  
	// effective c++    :  
	// *  const   const data; (    )
	// *  const   const pointer;  
	//            const int* p   int const *p  
	//       const            const   ,    const data.  
	  
	const int* constData = &nNum1;  
	//*constData = *pNum; // error     。
	constData = pNum;     //ok  
	  
	int* const constPointer = &nNum1;  
	*constPointer = *pNum; // ok  
	//constPointer = pNum; // error,const  
	
	//////////////////////////////////////////////////////////////
	//           :
	//////////////////////////////////////////////////////////////
	vector<int> vec;
	vec.push_back(nNum1);
	vec.push_back(nNum2);
	//      
	vector<int>::const_iterator iter1 = vec.begin();
	//*iter1 = nNum2;  // error
	iter1++;           // ok
	
	// const   
	const vector<int>::iterator iter2 = vec.begin();
	*iter2 = nNum2;     // ok
	//iter2++;          // error
	
}