[英]How to initialize and return vector of vectors more compactly?
如何更紧凑地初始化和返回向量的向量? 对于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;
}
function PopulateVectors()
接受res
作为参考并将多个向量插入其中。 它在内部的工作方式对这个问题并不重要。
if (K == 1)
{
return {{N}};
}
if (K == N)
{
return {std::vector<unsigned int>(N,1)};
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.