我是靠谱客的博主 精明短靴,最近开发中收集的这篇文章主要介绍容器的swap操作,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

除了array外,swap不对任何元素进行拷贝、删除或插入操作,因此可以保证在常数时间内完成。
除了string外,指向容器的迭代器、引用、指针都不会失效。
与其它容器不同,对一个string调用swap可能会导致迭代器、指针、引用失效。具体在VS和G++上可能表现又不同。原因是string的SSO(short string optimization),比如一个s1存储15个以内,一个s2存储>15,则swap后,s1的那个15个字节变为指针用于存储s2的字符串,而s2的指针变成存储s1的字符串。则指针指向的内容已经变了。这对于指针、引用来说还可以解引用。但是对于迭代器来说,可能就是失效了,不能解引用了!!!

最后

以上就是精明短靴为你收集整理的容器的swap操作的全部内容,希望文章能够帮你解决容器的swap操作所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(39)

评论列表共有 0 条评论

立即
投稿
返回
顶部