我必须使用以下规则构造一个有序容器(必须是可迭代的):
如果条件为真,则容器是
{1,0},否则就是{0,1}
我有以下代码,但我发现它并不"优雅":
vector<int> orderedSides;
if (condition)
{
orderedSides.push_back(1);
orderedSides.push_back(0);
}
else
{
orderedSides.push_back(0);
orderedSides.push_back(1);
}
Run Code Online (Sandbox Code Playgroud)
有没有更好的方法(从简洁和性能的角度来看)?
Edg*_*jān 16
你可能会实现这样的事情:
vector<int> orderedSides(2, 0);
(condition ? orderedSides.front() : orderedSides.back()) = 1;
Run Code Online (Sandbox Code Playgroud)
这比条款明确要短一些.
正如下面提到的@Deduplicator,我们可能会以更简洁的方式重写第二行:
orderedSides[!condition] = 1;
Run Code Online (Sandbox Code Playgroud)
vector<int> orderedSides;
orderedSides.push_back(condition ? 1 : 0);
orderedSides.push_back(condition ? 0 : 1);
Run Code Online (Sandbox Code Playgroud)
我认为它不是更高效,但我发现它更优雅.
| 归档时间: |
|
| 查看次数: |
973 次 |
| 最近记录: |