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