c++ - 如何更紧凑地初始化和返回向量的向量?
问题描述
如何更紧凑地初始化和返回向量的向量?下面的代码在 和 的两种情况下显得臃肿且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
作为参考并将多个向量插入其中。它在内部工作的方式对这个问题无关紧要。
解决方案
if (K == 1)
{
return {{N}};
}
if (K == N)
{
return {std::vector<unsigned int>(N,1)};
}
推荐阅读
- flutter - 如何从我的设备访问所有电话联系人
- python - 使用 python 套接字和端口转发的服务器实现
- python - 如何在python中将同时具有字符串和int的数据框的列转换为仅int
- javascript - 如何在 NodeJS 中将 DATA 返回到 API
- python - 求最小化矩阵向量乘积标准差的向量排列
- javascript - 自定义四舍五入逻辑
- flutter - 如何在 Flutter 中禁用 RawMaterialButton?
- reactjs - 如何有条件地导入和重新渲染 app.js
- c++ - 前序树遍历和入栈顺序
- tensorflow - 如何在使用张量板查看混淆矩阵的同时绘制混淆矩阵的实际数字和颜色?