作者AntaresStar ()
看板Programming
標題Re: [問題] 想把 > 和 < 在迴圈中動態給定
時間Sat Feb 16 16:15:17 2013
假設是寫c++
純粹就置換大於小於來說 可以用std的less跟greater
雖然說實質上也是多開了function 用c++內建的function總是比自己多開的好
template <class C>
void f(int a, C c) {
if (c(a, 1))
...
else if (c(a, 2))
...
}
// 不要迴圈了 call兩次就好
f(a, std::greater<int>());
f(a, std::less<int>());
不過這寫法遇到保守的人, stl hater或template hater大概都會被罵到臭頭 XD
※ 引述《BBSealion (海獅)》之銘言:
: 有點不清楚怎麼敘述
: 就是我有一個判斷是要跑
: if(a>1)
: else if(a>2)
: ...
: else if(a>10)
: 另一個就是反過來
: if(a<1)
: else if(a<2)
: ...
: else if(a<10)
: 因為兩個判斷是裡面做的事情很像
: 我想寫成一個i=0~1跑兩次的迴圈解決
: 但要怎樣控制那個判斷式的 > 和 < 記號呢?
: 是可以另外寫一個function丟參數i進去實作 > 和 <
: 但為了一個大於小於多開一個function感覺還是不太漂亮
: 想知道有沒有更精簡的寫法呢
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 111.248.72.119
→ suhorng:我倒是覺得滿好的 XDD 118.166.52.23 02/16 17:44
→ fireslayer:template hater毫無意義 140.113.68.74 02/16 21:26