可以在此處找到隨機訪問迭代器的要求。在此頁面上,您將看到任何兩個RandItsa和b,a<b和a-b都是合法的 c 。a-b回傳一個difference_type。
在我的代碼中,我想計算a<b,但不是比較aand ,而是b比較a-firstand b-first。這需要兩件事:
difference_types 具有可比性。(a-first < b-first) == (a < b).
將 s 的比較實作為滿足(2)會很容易difference_type,但我不知道這是否是標準要求的。(1) 和 (2) 成立嗎?
uj5u.com熱心網友回復:
該標準要求iterator_traits<It>::difference_type是“有符號整數型別”(或void)。這句話要按字面意思理解。[basic.fundamental]/1定義了許多型別是“整數型別”,其中的一個子集是“有符號整數型別”。
這些是 C 中唯一的“有符號整數型別”。您可以創建類似于“有符號整數型別”的型別,但該標準明確定義了一組適合該術語的特定功能型別。而且您的用戶定義型別不是它們。
因此,是否difference_type“可比”不是您的選擇;所有整數型別都是可比較的,因為這就是 C 定義它們的方式。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/517064.html
上一篇:高圖表未在折線圖上正確顯示值
