boost.array 使用实例

//z 2011-06-08 23:20:20@is2120.CSDN 转载请注明出处
#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
*/

posted @ 2011-06-08 23:26  BiG5  阅读(159)  评论(0编辑  收藏  举报