У меня есть функция, которая получает массив (int), и я должен вернуть все подмножества с суммой 0. Для exameple, если мой список массивов (2,5, -3, -5, -2), моя функция имеет вернуть (2, -2), (5, -5), (5, -3, -2). Как я могу вернуть эти подмножества и как я могу получить к ним доступ в программе (например, для отображения 2-го подмножества, если он существует)? Я упоминаю, что мне не нужен алгоритм для поиска подмножеств. Если бы вы знаю, как я мог бы использовать vectorv [] было бы идеально
Если бы вы знали, как я мог бы использовать
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;
}
Вы бы вернули вектор векторов:
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;
}