看板 C_and_CPP 關於我們 聯絡資訊
最近學STL有些觀念待釐清: STL中的iterator有分input iterator, output iterator forward iterator, bidirectional iterator, random access iterator五種。 越後面的的iterator功能會包含前面iterator的功能, 但各iterator之間沒有實際的繼承關係 algorithm並不會替輸入的iterator檢查他是屬於哪一種iterator (除非該algorithm對不同的iterator有不同的實作方式) 若某algorithm需要輸入的是random access iterator, 但使用者輸入的是bidirectional iterator,則會在runtime產生錯誤, 因為使用了bidirectional iterator所沒有實作的操作, 以上的觀念有誤嗎? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 111.240.153.206
littleshan:使用不符合的iterator會產生compile error 12/04 23:42
littleshan:而不是runtime error 12/04 23:42
bigpigbigpig:應該 compile 時就過不了吧 :) 12/05 14:26
iamstudent:這也算是template的目的之一,編譯的時候就能發現錯誤 12/06 00:55
pracinverse:THANKS 12/13 23:02