概述
除了array外,swap不对任何元素进行拷贝、删除或插入操作,因此可以保证在常数时间内完成。
除了string外,指向容器的迭代器、引用、指针都不会失效。
与其它容器不同,对一个string调用swap可能会导致迭代器、指针、引用失效。具体在VS和G++上可能表现又不同。原因是string的SSO(short string optimization),比如一个s1存储15个以内,一个s2存储>15,则swap后,s1的那个15个字节变为指针用于存储s2的字符串,而s2的指针变成存储s1的字符串。则指针指向的内容已经变了。这对于指针、引用来说还可以解引用。但是对于迭代器来说,可能就是失效了,不能解引用了!!!
最后
以上就是精明短靴为你收集整理的容器的swap操作的全部内容,希望文章能够帮你解决容器的swap操作所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复