如何更紧凑地初始化和返回向量的向量?下面的代码在 和 的两种情况下显得臃肿且K==1
重复K==N
。
std::vector< std::vector<unsigned int> > Foobar(const unsigned int K, const unsigned int N)
{
std::vector< std::vector<unsigned int> > res;
if (K == 1)
{
std::vector<unsigned int> r(1,N); //One N.
res.emplace_back(r);
return res;
}
if (K == N)
{
std::vector<unsigned int> r(N,1); //N ones.
res.emplace_back(r);
return res;
}
PopulateVectors(res, K+1, N+1);
PopulateVectors(res, K, N);
return res;
}
该函数PopulateVectors()
接受res
作为参考并将多个向量插入其中。它在内部工作的方式对这个问题无关紧要。