gpt4 book ai didi

c++ - 初始化列表到数组

转载 作者:太空狗 更新时间:2023-10-29 21:38:51 27 4
gpt4 key购买 nike

截至目前,我有一个 Permutation 类,其中包含:

public:
int elements[N];
Permutation(std::initializer_list<size_t> data): elements(data) {};

但是当我尝试编译时,我得到了这个:

error: array initializer must be an initializer list

我用谷歌搜索了初始化列表,但没有任何有用的东西/我能理解。所以我对如何使用初始化列表一无所知。

我该如何编写这个构造函数?

更新

我也有这个版本:

public:
int elements[N];
Permutation(std::initializer_list<size_t> data): elements(new int[N]) {
std::copy(data.begin(), data.end(), elements.begin(), elements.end());
}

我很确定这是错误的,但如果它可以修复,有人可以告诉我该怎么做吗?

最佳答案

第二种方法很接近。它需要微小的调整。

Permutation(std::initializer_list<int> data) : elements{}
{
size_t size = data.size();
if ( size <= N )
{
std::copy(data.begin(), data.end(), std::begin(elements));
}
else
{
std::copy(data.begin(), data.begin()+N, std::begin(elements));
}
}

关于c++ - 初始化列表到数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34195634/

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