STL中swap的简单使用及总结
来源:互联网 发布:进出口贸易数据期刊 编辑:程序博客网 时间:2024/06/05 18:18
STL中swap操作交换两个相同类型容器的内容,两个容器的元素将会将换。
需要注意的是相同的容器类型和相同的元素类型。
下边以具体实例说明:
1.相同的容器类型相同的元素类型
结果如图所示,str1和str2交换了元素。但是可以发现指向容器的迭代器并没有指向交换后的元素,而是依然指向原先的元素,这是因为swap并没有交换元素本身,而是只交换了两个容器的内部数据结构。所以迭代器并没有实效,对指针和引用一样。
2.相同的容器类型不同的元素类型
编译不通过,不能使用swap交换。
因为swap操作对string和array的调用与其他容器不同所以一下分析对array 和string 的swap调用。
3.对array调用swap
结果如上图所示,元素交换了。迭代器所指向的元素的值变化了,根据C++ primer所述,对array调用swap,swap会将arrar的元素一一交换是真正的交换元素,所需的时间跟元素的多少成正比。
4.对string调用swap
结果如图所示,迭代器所指的元素没有改变,故应该跟一般的容易一样,元素本身应该并未交换,但根据C++ primer 303页所述,应该是会导致迭代器失效。
希望有明白这个问题的大牛不吝赐教。
0 0
- STL中swap的简单使用及总结
- 简单的程序诠释C++ STL swap
- STL 中简单的set总结
- linux中内存使用,swap,cache,buffer的含义总结
- linux中内存使用,swap,cache,buffer的含义总结
- linux中内存使用,swap,cache,buffer的含义总结
- stack STL 中栈的简单使用
- STL中map的简单使用
- c++中STL的使用总结
- stl中map的使用总结
- 避免使用swap的方法,及解决方法
- localStorage的使用总结及简单案例
- 简单的程序诠释C++ STL算法系列之十五:swap ---》利用swap()函数进行内存的释放
- C++ STL中容器的使用全面总结
- STL中list的使用及模拟实现
- linux下使用hash_map及STL总结
- STL------string的简单使用
- STL------vector的简单使用
- VS2010、SQL Server 2008安装详解
- Bmp位图文件
- “tar: Removing leading `/’ from member names”的错误
- js placeholder
- 洛谷 P1268 树的重量
- STL中swap的简单使用及总结
- C++设计模式——简单工厂模式
- leetcode_165. Compare Version Numbers 比较版本大小
- 登山c#-datetime说明
- BZOJ 1306 DFS
- 找女朋友——快排
- 2016-2017 CT S03E08: Codeforces Trainings Season 3 Episode 8 K1 gcd
- 【miscellaneous】软件加密方法
- hive中自定义UDAF、 UDTF、 UDF