比較不同容器的迭代器
在 C 中,在處理不同容器時了解控制迭代器比較的原則非常重要。問題出現了:「比較不同容器的迭代器是否可以接受?」
為了回答這個問題,我們參考C 11 標準(n3337):
由於 RandomAccessIterator 繼承了 ForwardIterator 的要求,因此比較來自不同容器的迭代器是未定義的行為。
LWG 問題#446 特別解決了這個問題並提出了建議對標準的以下修訂:
「使用從兩個不同範圍r1 和r2 獲取的兩個迭代器值作為參數直接或間接評估任何比較函數或二元- 運算符的結果是未定義的,除非明確定義」
此修正案強調比較來自不同容器的迭代器,除非它們是公共範圍的子範圍,否則是未定義的行為。
以上是可以在 C 中比較來自不同容器的迭代器嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!