我如何优化*这个?

时间:2017-11-11 01:01:20

标签: c++ optimization

我的代码提取是

if (num == 0) {
    cout << 1;
    cout << 2;
}
else if (num == 1) {
    cout << 0;
    cout << 2;
}
else if (num == 2) {
    cout << 0;
    cout << 1;
}

其中0 <= num&lt; = 2。

我在问,因为cout << ...语句将被转换为更大,但(几乎)彼此相同的内容。

*我的意思是优化美化&#39;代码(例如删除5个重复的cout语句)。

我没有把#34;美化&#34;在这个问题中,因为它在SO问题中听起来很奇怪。

4 个答案:

答案 0 :(得分:6)

也许这个?

cout << "100"[num];
cout << "221"[num];

答案 1 :(得分:2)

这些方面的一些东西,也许是:

for (int i : {0, 1, 2}) {  // or for (int i = 0; i <= 2; ++i) {
  if (i != num) {
    std::cout << i;
  }
}

答案 2 :(得分:1)

嗯,这里有些不同(没有iffor):

cout << ( (n + 1) % 2); 
cout << ( (n + 2) % 2) + (2 - n);

显然:n = 0,1,2。

答案 3 :(得分:0)

这是另一种

  cout.write((0==n)?("12"):((1==n)?("02"):("01")),2);