gpt4 book ai didi

c++ - 我可以为一个构造函数使用一个整数数组,为另一个构造函数使用一个整数吗?

转载 作者:行者123 更新时间:2023-11-30 01:29:42 25 4
gpt4 key购买 nike

是否允许在同一个 IntList 类中使用以下构造函数?

IntList(int length);
IntList(int data[]);

最佳答案

很好,但请注意后者与 int* data 相同, 这是一个指针而不是一个数组。

数组是不可复制的,必须通过引用传递:

typedef int array_type[5];

IntList(const array_type& arr); // same as: IntList(const int (&arr)[5]);

您还可以使用模板获取任意大小的数组:

template <std::size_t N>
IntList(const int (&arr)[N]); // N is the number of elements

但您的方法最终是非正统的。如果您想使用一系列数据进行初始化,请使用迭代器:

template <typename InputIterator>
IntList(InputIterator begin, InputIterator end);

现在您可以从 begin 开始迭代至 end ,它可以是来自任何类型容器的迭代器,如数组,std::vector的,std::map的等等。

但是你应该使用 std::vector<int>而不是 IntList无论如何。

关于c++ - 我可以为一个构造函数使用一个整数数组,为另一个构造函数使用一个整数吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5463960/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com