C++で論理OR演算子を使用する際に問題が発生しました。問題は、左側が真の場合、右側の式が評価されないということです。2つの両端キューがあり、しばらくしてそれらからpopLeftする必要がありますが、最初の両端キューからポップできる場合は、OR演算子によって評価されないため、2番目の両端キューからポップしません。どうすればこの問題を克服できますか。コードは次のとおりです。
while( D.popLeft( k ) || E.popLeft( m ) )
{
if( k < m )
{
C.pushRight( k );
E.pushLeft( m );
}
else
{
C.pushRight( m );
D.pushLeft( k );
}
}