[問題] 想請問一下這行程式碼 謝謝

看板C_and_CPP (C/C++)作者 (呈呈)時間12年前 (2014/01/11 17:21), 編輯推噓0(004)
留言4則, 4人參與, 最新討論串1/1
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) c++ 額外使用到的函數庫(Library Used): (Ex: OpenGL, ...) opencv 問題(Question): 想請問一下其中某行的意思 for(int i = 0, j = row.cols-1; j > i; i++, j--) { if(leftPos == -1 && _mask[i] != 0) // hit left { leftPos = i; bool decrement = (_row[i+1] - _row[i]) > 0; // find similar value from right uchar diff = _row[leftPos]; for(int p = (rightPos == -1) ? j : rightPos; p != leftPos; p--) { uchar localDiff = std::abs(_row[p] - _row[leftPos]); if(localDiff < diff) { //if(decrement ^ ((_row[p-1] - _row[p]) > 0)) // different direction //continue; leftPeriodPos = p; diff = localDiff; if(diff == 0) // the same value break; } } } if(rightPos == -1 && _mask[j] != 0) // hit right { rightPos = j; bool decrement = (_row[j-1] - _row[j]) > 0; // find similar value from left uchar diff = _row[rightPos]; for(int p = (leftPos == -1) ? i : leftPos; p != rightPos; p++) { uchar localDiff = std::abs(_row[p] - _row[rightPos]); if(localDiff < diff) { //if(decrement ^ ((_row[p+1] - _row[p]) > 0)) // different direction // continue; rightPeriodPos = p; diff = localDiff; if(diff == 0) // the same value break; } } } } 想請問這一整串裡面的這行 for(int p = (rightPos == -1) ? j : rightPos; p != leftPos; p--) 大概的意思是啥? 謝謝 餵入的資料(Input): 預期的正確結果(Expected Output): 錯誤結果(Wrong Output): 程式碼(Code):(請善用置底文網頁, 記得排版) 補充說明(Supplement): -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 218.164.80.115

01/11 17:53, , 1F
A ? B : C => if A {B} else {C}
01/11 17:53, 1F

01/12 00:15, , 2F
謝謝 以解答
01/12 00:15, 2F

01/12 02:55, , 3F
很整人的ternary operator
01/12 02:55, 3F

01/12 23:59, , 4F
三元運算子
01/12 23:59, 4F
文章代碼(AID): #1IqGqfIR (C_and_CPP)
文章代碼(AID): #1IqGqfIR (C_and_CPP)