1

我有一个接收数组(int)的函数,我必须返回总和为0的所有子集。例如,如果我的数组列表是(2,5,-3,-5,-2),我的函数有返回 (2,-2),(5,-5),(5,-3,-2)。如何返回这些子集,以及如何在程序中进一步访问它们(例如,如果确实存在,则显示第二个子集)?我提到我不需要算法来查找子集。如果你愿意知道我可以如何使用 vectorv[] 这将是完美的

4

2 回答 2

3

您将返回一个向量向量:

template<size_t N>
std::vector<std::vector<int>> myFunc(const std::array<int, N>& arr)
{
    std::vector<std::vector<int>> results;
    //... fill results
    return results;
}
于 2013-10-10T20:23:36.597 回答
0

如果你知道我可以如何使用vector v[]它会很完美

您不能制作数组向量,但可以制作向量向量。当您需要制作容器时,这是 C++ 中的标准策略:

std::vector<std::vector<int> > make_sets(std::vector<int> data) {
    std::vector<std::vector<int> > res;
    std::vector<int> first;
    res.push_back(first);
    std::vector<int> second;
    res.push_back(second);
    return res;
}
于 2013-10-10T20:24:04.397 回答