vector迭代器失效問題 C 中map容器的迭代器使用?
C 中map容器的迭代器使用?這個(gè)句子定義了迭代器映射。這個(gè)定義不能出現(xiàn)在逗號(hào)表達(dá)式中。所以把這個(gè)句子放在for循環(huán)之前。map沒有繼承iterable,為什么可以使用迭代器?1. Iterator
C 中map容器的迭代器使用?
這個(gè)句子定義了迭代器映射。
這個(gè)定義不能出現(xiàn)在逗號(hào)表達(dá)式中。所以把這個(gè)句子放在for循環(huán)之前。
map沒有繼承iterable,為什么可以使用迭代器?
1. Iterator執(zhí)行迭代,iteratable提供Iterator。
2. 如果沒有設(shè)置迭代器,并且將next、hasnext等插入到集合中,那么集合將有一個(gè)狀態(tài),因?yàn)楸仨氃趦?nèi)部記錄當(dāng)前光標(biāo)位置。
3. 這是不合理的。如果這樣做,在嵌套循環(huán)時(shí)就不能循環(huán)同一個(gè)集合。
4. 更不用說多線程了
5。主要原因是以上一點(diǎn)。這是“能”的問題,不是“好”的問題。其他“壞”的原因?qū)⒉槐惶峒啊?/p>