c++0x:array和for

std::array是一个支持随机访问且大小(size)固定的容器(译注:可以认为是一个紧缩版的vector吧)。它有如下特点:

1.不预留多余空间,只分配必须空间,如

array<int,5> a={1,2};//a.size=a.capacity()

2.可以使用初始化表(initializer list)的方式进行初始化。

array<int,3> arr={1,2,3}



3.不支持隐式指针类型转换

array<int,3> arr={1,2,3}
int *p=arr;//error
int *pp=arr.data();//right

4.它是不支持由子类到基类的自动类型转换的

struct Apple : Fruit { /* … */ };
struct Pear : Fruit { /* … */ };
 
void nasty(array<fruit *,10>& f)
{
        f[7] = new Pear();
};
 
array<apple ,10> apples;
// …
nasty(apples);  // 错误: 不能将array转换为array;

序列for循环语句

序列for循环语句允许重复遍历一组序列,而这组序列可以是任何可以重复遍历的序列,如由begin()和end()函数定义的STL序列。所有的标准容器都可用作这种序列,同时它也同样可以是std::string,初始化列表(list),数组,以及任何由begin()和end()函数定义的序列,例如输入流。

array<int,3> arr={1,2,3};
    for(auto val : arr)
    {
        cout<<val<<endl;
    }





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值