我有下一个程序。我应该如何在 main 中使用迭代器来显示总和为 0 的子集?
我的程序应该打印:
2 -2
5 -5
# include < iostream >
# include < vector >
using namespace std;
vector < vector < int > > test(vector <int> data)
{
vector <int> a;
vector < vector < int > > ret;
vector <int> :: iterator it1;
vector <int> :: iterator it2;
int i=0;
for(it1 = data.begin(); it1!= data.end(); it1++,i++)
{
for(it2 = data.begin() + i; it2!= data.end(); it2++ )
{
if( *it1 + *it2 == 0)
{
cout<<*it1<<" "<<*it2<<"\n";
a.push_back(*it1);
a.push_back(*it2);
ret.push_back(a);
a.clear();
}
}
}
return ret;
}
int main()
{
vector < int > data;
data.push_back(2);
data.push_back(5);
data.push_back(-3);
data.push_back(-2);
data.push_back(-5);
vector <vector <int > > v=test(data);
//how to continue printing the subsets
}