#include  <iostream> 
//z 包含 array 相关头文件。 
#include  <boost/array.hpp> 

using   namespace   std;
using   namespace   boost;

//z 仿函数,输出array各元素。 
class   PrintInt
 {
private  :
   int   sum;
   int   cnt;
public  :
   PrintInt(int   val):sum(val),cnt(0 ){}
   void   operator  ()(int   val)
   {
     cout << val << " /t " ;
     ++cnt;
     if  (cnt == sum)
     {
       cout << endl << endl;
     }
   }
 };

int   main()
 {
   //z 第一个template表示类型,第二个表示数目 
   array<int  ,6 > ar;
   for_each(ar.begin(),ar.end(),PrintInt(ar.size()));
   ar[0 ]=1 ;
   //z 对最后一个元素赋值 
   ar.back()=10 ;
   for_each(ar.begin(),ar.end(),PrintInt(ar.size()));
   //z fill,用777填充所有元素。 
   ar.assign(777 );
   for_each(ar.begin(),ar.end(),PrintInt(ar.size()));
   int  * p = ar.c_array();
   *(p+5 ) = 253 ;
   cout << ar[5 ] << endl;

   ar.at(1 )=666 ;
   sort(ar.begin(),ar.end());
   for_each(ar.begin(),ar.end(),PrintInt(ar.size()));

   return   0 ;
 }
/* output: 
1310592 4206490 4219304 4219312 4219308 0 

1       4206490 4219304 4219312 4219308 10 

777     777     777     777     777     777 

253 
253     666     777     777     777     777 
*/