使用递归将数据类型放入数组中

Placing data types into an array using recursion

本文关键字:数组 数据类型 递归      更新时间:2023-10-16

我有这个函数,它从一个袋子中获取数据(items[],预定义为容纳 6 个项目),并以向量的形式返回。我应该编写该方法的基于递归数组的实现。

template <typename ItemType>
vector<ItemType> ArraySet<ItemType>::toVector() const{
vector<ItemType> setContents;
for(int i = 0; i < itemCount; ++i){
setContents.push_back(items[i]);
}
 return setContents;
}

我该怎么做?数据已经在数组中,它只是希望我将数据传输到另一个数组吗?也许我只是想多了,但这个问题确实让我感到困惑。谢谢。

template <typename ItemType>
void ArraySet<ItemType>::toVector( vector<ItemType>& setContents,int item) const{
    if( item >= 0 )
    {
        toVector(setContents,item-1);
        setContents.push_back(items[item]);
    }
}
template <typename ItemType>
vector<ItemType> ArraySet<ItemType>::toVector() const{
    vector<ItemType> setContents;
    toVector(setContents,itemCount-1);
    return setContents;
}
递归

函数需要有一个基本情况,即递归结束的地方。我们想要递归数组的长度,itemCount。这可以用两种方式编写,这里的push_back()遵循递归调用,因此我们需要以相反的顺序下降。如果它在调用之前,我们最初将从零索引开始。