数组的替代品vector和array

#include <iostream>
#include <vector> //STL C++98
#include <array> //C++11
int main()
{
    using namespace std;
    //C, original C++
    double a1[4]={1.2,2.4,3.6,4.8};
    //C++ 98 STL
    vector<double> a2(4); //create vector with 4 elements
    //no simple way to initialize in C98
    a2[0]=1.0/3.0;
    a2[1]=1.0/5.0;
    a2[2]=1.0/7.0;
    a2[3]=1.0/9.0;
    //C++11--create and initialize array object
    array<double,4> a3={3.14,2.72,1.62,1.41};
    array<double,4> a4;
    a4=a3;  //valid for array objects of same size
    //use array notation
    cout<<"a1[2]: "<<a1[2]<<" at "<<&a1[2]<<endl;
    cout<<"a2[2]: "<<a2[2]<<" at "<<&a2[2]<<endl;
    cout<<"a3[2]: "<<a3[2]<<" at "<<&a3[2]<<endl;
    cout<<"a4[2]: "<<a4[2]<<" at "<<&a4[2]<<endl;
    //misdeed
    a1[-2]=20.2;
    cout<<"a1[-2]: "<<a1[-2]<<" at "<<&a1[-2]<<endl;
    cout<<"a3[2]: "<<a3[2]<<" at "<<&a3[2]<<endl;
    cout<<"a4[2]: "<<a4[2]<<" at "<<&a4[2]<<endl;

    return 0;
}
array对象和数组存储在相同的内存区域(栈)中,而vector对象存储在另一个区域(自由存储区或堆)中。第三,注意到可以将一个array对象赋值给另一个array对象;而对于数组,必须逐元素复制数据。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值