私が次のものを持っていると考えてください:
edge some_edge;
std::priority_queue<edge> my_queue;
キューが空の場合でも、そのような「if」を書いても安全ですか?
if ((my_queue.size() > 0) && (my_queue.top().weight < some_edge.weight)) {
do_something;
}
これはどうですか?
if ((my_queue.top().weight < some_edge.weight) && (my_queue.size() > 0)) {
do_something;
}
左のオペランドが false と評価された場合、オペランド間の演算子が 'and' である式の評価は停止しますか?