vector的插入操作不会导致迭代器失效
map的插入操作不会导致迭代器失效
vector的删除操作只会导致指向被删除元素及后面的迭代器失效
map的删除操作只会导致指向被删除元素的迭代器失效
vector 动态增加大小时,并不是在原空间后增加新空间,而是以原大小的两倍在另外配置一个较大的新空间,然后将内容拷贝过来,接着再原内容之后构造新元素,并释放原空间,由于插入操作改变了空间,故迭代器会失效~
在std::vector中,插入和删除操作都可能会导致迭代器失效。具体来说:
因此,选项A "vector的插入操作不会导致迭代器失效" 描述是错误的。
其他选项的描述都是正确的:
vector的插入操作不会导致迭代器失效//vector是顺序存储的,只有在尾部插入才不会导致迭代器失效,只有这种数组插入最麻烦,要挨个往后移动才行,,,
map的插入操作不会导致迭代器失效//他会自动排序key,插了再排呗..
vector的删除操作只会导致指向被删除元素及后面的迭代器失效//对的,还是因为是基于数组的呗
map的删除操作只会导致指向被删除元素的迭代器失效//还是因为他的key是自动排序的,但是要注意,擦除后,就跳到下一个了,若是循环就没必要调用增量了,或者人为的减一下
这道题你会答吗?花几分钟告诉大家答案吧!
扫描二维码,关注牛客网
下载牛客APP,随时随地刷题