回答
這應該是不可能的。 [container.requirements.general]中的標準狀態/ 6
begin()
返回一個引用容器中第一個元素的迭代器。end()
返回一個迭代器,其中 是容器的過去最終值。如果容器是空的,那麼begin() == end();
所以如果contianer.empty() == true
然後container.begin()
必須等於container.end()
我知道standart說什麼,但請更加開放,不要把它當作自然規律。可以有這樣的情況,我只是流浪,如果有人有這樣的 –
我不是沒有開放頭腦我只是說根據標準,它不能發生。如果是這樣,那麼你的實現中有一個錯誤,它需要修復。 – NathanOliver
@IrakliDarbuashvili:這些是規則,我不知道目前單一的C++實現無法滿足它們。既然你認爲提供和MCVE是以某種方式泄露祕密信息,我會更傾向於相信,你不是很有經驗,你觀察到的是你的代碼中的錯誤,或者錯誤地解釋你的觀察。 – IInspectable
- 1. 無需開始和結束遍歷矢量
- 2. XSLT離開開始和結束標記
- 3. 畫廊空間開始和結束
- 4. 目標C:開始點和結束點
- 5. 變化AngularJS開始和結束標記
- 6. PHP DateTime課程開始/結束標籤
- 7. CKEditor標籤檢測結束/開始
- 8. MJPEG的開始和結束標籤?
- 9. XML開始和結束標記
- 10. 製作標題,開始,結束隱形
- 11. 何時標準化矢量?
- 12. 轉換開始和結束座標到空間線中的R
- 13. Daterange Picker開始結束開始時
- 14. 標準化行結束
- 15. 僅使用標準庫創建「矢量矢量」的標準操作
- 16. 查詢結束開始與
- 17. 開始結束編號
- 18. UITableView開始/結束更新
- 19. Rails delayed_job開始和結束
- 20. 在開始和結束點(!)
- 21. Svg animate:開始和結束
- 22. 在開始/結束日期
- 23. 獲取的開始/結束
- 24. 矢量const_iterator如何超越矢量結束?
- 25. 矢量初始化矢量
- 26. .net標準中是否存在開始/結束異步套接字方法(APM)?
- 27. 標準矢量和增強矢量的push_back:哪個更快?
- 28. Youtube API查詢:開始之前,開始之後,結束之前,結束之後
- 29. 圓弧變換開始結束點到開始角度結束角度
- 30. CLI/C#通過標準::矢量<>結構數據到C#
奇怪...你有一個代碼示例來證明這個問題? – blazs
考慮到,對於空的'std :: vector','begin()'等於'end()'是一個嚴格的要求,我懷疑以前是否有人觀察過它。除非我們不討論C++或兼容的C++實現。在那種情況下,你使用的是什麼編譯器和平臺? – IInspectable
我似乎還記得遇到過這種情況,但當整個「STL」事件是新的時候,它可能至少在20年前(也許更多),並且錯誤很常見。 –