vector迭代器失效問題 vector中erase函數(shù)可以使用迭代器嗎?為什么我的會報錯呢?
vector中erase函數(shù)可以使用迭代器嗎?為什么我的會報錯呢?例如,矢量擦除的一個實現(xiàn)如果擦除是如上所述實現(xiàn)的,那么nums.erase刪除(it)和it=nums.erase刪除(它)在兩次操作
vector中erase函數(shù)可以使用迭代器嗎?為什么我的會報錯呢?
例如,矢量擦除的一個實現(xiàn)
如果擦除是如上所述實現(xiàn)的,那么nums.erase刪除(it)和it=nums.erase刪除(它)在兩次操作后繼續(xù)使用它實際上可以產(chǎn)生相同的效果(如果編譯器同意);
實際上nums.erase刪除(it)根據(jù)標(biāo)準(zhǔn),后面的迭代器應(yīng)該是無效的,但是如果如果繼續(xù)使用它,在某些編譯器下,可能不會報告錯誤,就像erase的返回值一樣。如果編譯器認(rèn)為沒問題,程序就可以運行。
我覺得標(biāo)準(zhǔn)就是標(biāo)準(zhǔn)。如果它違反了標(biāo)準(zhǔn),它是否可以通過取決于字符。