迭代器尾後元素的設計是出於什麼意圖?

時間 2021-06-05 03:16:00

1樓:

左閉右開區間是個好東西,結尾的元素或迭代器直接當成哨兵。表示遍歷結束。

區間描述的自然,用迭代器遍歷區間演算法也能寫的簡練。

另外考慮一下相鄰區間的連線

[1,2) + [2,4) = [1,4)很自然[1,2] + [2,4] = 啥?

[1,2] + [3 ,4] = 啥?

參考:程式設計原本 (豆瓣)

2樓:天象

當然得有尾後元素,因為乙個大小為n的容器,尾元素其實是第n-1個元素,尾後元素才是第n個元素。如果沒有尾後元素,迴圈條件就沒法寫了。不信你試試用尾元素寫乙個遍歷容器的迴圈式試試。

所謂容器沒有尾後元素無法表達空容器的問題其實是上述問題的真子集, 因為真正面臨的問題是在大小為0的容器中尾元素是第-1個元素,因此無法表達。這也就指出了如果就是不能表達尾後元素,應該怎麼解決這一問題:認為元素編號從1開始,把首前元素認為是0,每次遍歷從後向前迴圈。

3樓:gtruez

如果不是用尾後元素,而是用最後乙個元素的話。那當begin()==end()的時候就無法判斷是沒有元素還是只有乙個元素了

4樓:

尾後元素無法避免,即便你不用顯示的元素表示,你也必須通過另一種方式表明尾元素是尾元素,這種方式,不論是什麼,都等價於尾後元素。

C 的迭代器的end 為什麼指向最後元素的下乙個位置

年輪 map wordCount wordCount.insert make pair chinese 200 wordCount.insert make pair english 9 wordCount.insert make pair frence 100 wordCount germany 8...

小公尺3為什麼設計這麼硬朗?是出於什麼考慮的?

王紫藤lantkin 很喜歡 朱純 的答案 MIUI和小公尺手機從一開始就是多彩圓潤的。小公尺在硬體上的風格轉型很有可能是為了MIUI V6做準備非常不錯的見解!確實MIUI V5和2S都非常圓潤,而MI3的硬朗與MIUI V5格格不入。就像看搭載MIUI V4的MI2感覺一般,而MIUIV5 MI...

平面設計經常出現手繪的元素是用什麼實現的,什麼軟體更適合手繪

鮑抒 個人認為繪製草圖可以用Autodesk出品的SKETCHBOOK,筆觸也比較順滑,如果需要向量圖內容可以用SKECHBOOK DESIGNER套件,相容PS,AI的一款軟體,對於工業設計很擅長,可以繪製CG,LOGO設計什麼的,只是新手剛上手不太容易 野合菌 在電腦上手繪可以用的工具很多。手繪...