简体   繁体   English

如何使用initializer_ist在构造函数中初始化动态数组?

[英]How to initialize dynamic array in constructor using initializer_ist?

I am trying to initialize the dynamic array in the constructor using initialize_list in C++. 我正在尝试使用C ++中的initialize_list构造函数中的动态数组。 How can I achieve this? 我该如何实现?

#include <cstdlib> 
#include <initializer_list>
#include <iostream>
#include <utility>

using namespace std;

class vec {
private:
    // Variable to store the number of elements contained in this vec.
    size_t elements;
    // Pointer to store the address of the dynamically allocated memory.
    double *data;

public:
    /*
      * Constructor to create a vec variable with the contents of 'ilist'.
    */
    vec(initializer_list<double> ilist);
}

int main() {
    vec x = { 1, 2, 3 };  // should call to the constructor 
    return 0;
}

Use a standard std::vector container instead of a raw pointer. 使用标准的std::vector容器而不是原始指针。 std::vector is a wrapper for a dynamic array, and it has a constructor that accepts a std::initializer_list as input. std::vector是动态数组的包装器,它具有一个接受std::initializer_list作为输入的构造std::initializer_list

#include <initializer_list>
#include <iostream>
#include <vector>
using namespace std;

class vec {
private:
    vector<double> data;

public:
    vec(initializer_list<double> ilist) : data(ilist) {}
};

initializer_list has size method, it gives you information how many elements must be allocated by new , so it could be: initializer_list具有size方法,它为您提供信息new必须分配多少个元素,因此可能是:

vec(initializer_list<double> ilist)
{
    elements = ilist.size();
    data = new double[ ilist.size() ];
    std::copy(ilist.begin(),ilist.end(),data);
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 如何使用初始化列表初始化数组元素? - How to initialize array elements by using initializer list? 如何在构造函数中初始化struct的动态数组? - How to initialize the dynamic array of struct in the constructor? c++ 使用构造函数参数在初始化列表中初始化 std::array of std::arrays - c++ initialize std::array of std::arrays in the initializer list using constructor parameters 如何使用initializer-list C ++初始化数组 - How to Initialize an array using initializer-list C++ 如何在构造函数中使用初始值设定项设置具有相同值的二维数组? - How to set 2d array with same values using initializer in constructor? 在构造函数初始化器列表中初始化 function 指针数组 - 错误 - Initialize function pointer array in constructor initializer list - error 从构造函数参数初始化类初始化列表中的const多维数组 - Initialize const multidimensional array in class initializer list from constructor arguments 如何使用大小和值构造函数使用成员初始化器列表初始化用户定义对象的向量 - How to initialize a vector of user defined objects, with member initializer lists, using size and value constructor 如何使用包含对 mapped_type 的构造函数调用的初始化列表最简洁地初始化 std::map - How to most concisely initialize std::map using an initializer list that includes a constructor call for the mapped_type 如何在成员初始值设定项列表中初始化数组 - How to initialize an array in the member initializer list
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM