C++ 0508 向量和数组(一)
发布日期:2021-05-08 04:49:47 浏览次数:21 分类:精选文章

本文共 900 字,大约阅读时间需要 3 分钟。

向量和数组

class vector

{
    int sz; //大小
    double* elem; //指向元素的指针
public:
    vector(int s)  //构造函数
        :sz{s},elem{new double[s]} {/*...*/} //分配内存
    ~vector()   //析构函数
        {delet[] elem;}  //释放内存
}

class vector
{
    int sz;  // 大小
    double* elem; //指向元素的指针
public:
    vector(int s)  //构造函数(s为元素数量)
        :sz{s},elem{new double[sz]} //为元素分配未初始化的内存
    {
        for(int i=0; i<sz; ++i) elem[i]=0.0;//初始化
    }

    vector(initializer_list<double>lst)  // 初始化器列表构造函数

         :sz{lst.size()}, elem{new double[sz]} //为元素分配未初始化的内存
    {
        copy(lst.begin(), lst.end(), elem); // 初始化
    }

};

vector v1={1,2,3}; //三个元素1.0,2.0,3.0

vector v2(3); //三个元素,都具有(默认值)0.0

vector v1 {3}; //一个元素,值为3.0

vector v2(3); //三个元素,都具有(默认值)0.0

如果有多个构造函数可供选择,编译器会将{}列表中的一个值解释为一个元素值,并将它作为一个initializer_list
的元素传递给初始化器列表构造函数。

vector v11={1,2,3}; //三个元素1.0,2.0,3.0

vector v12={1,2,3}; //三个元素1.0,2.0,3.0
两个定义只是风格上的不同

注意,我们是按传值方式传递initalizer_list<double>的。我们故意这样做的,这也是语言规则所要求的

:一个initializer_list只是指向分配在“别处的”元素的句柄。
 

上一篇:centos7 安装jumpserver
下一篇:Centos7 安装Docker UI 管理界面

发表评论

最新留言

很好
[***.229.124.182]2025年04月01日 14时45分08秒