C++ 容器中自定义类型 value_type
来源:互联网 发布:电子音乐推荐 知乎 编辑:程序博客网 时间:2024/05/18 23:55
刚学C++ Primer的时候,经常看见书上说,使用容器的时候,尽量用value_type是个好习惯,觉得比起直接写类型,麻烦很多,所以并不是很能理解,看模板的时候终于明白了为什么所有容器都要定义一个value_type了。
现在来看看value_type到底有什么用。
首先定义两个包装容器,只是对任意类型的值进行了一层包装而已。
template <typename T> class Bag //包装容器袋子{public: typedef T value_type; T val; //内容 Bag(T value):val(value){};};template <typename T> class Box //包装容器箱子{public: typedef T value_type; T val; //内容 Box(T value):val(value){};};
现在来试着实现一个函数,可以从这两个容器中取出里面的值,并且作为返回值。
最简单的方法肯定是模板函数了,然而返回值怎么表示?如果容器中没有定义value_type的话,这个函数是无法实现的。(C11的auto可能可以吧)
在使用了value_type之后~
template <typename C> typename C::value_type unpack(C container){ return container.val;}
所以,在定义了一个value_type之后就可以写出和实现具体容器无关却可以对容器内容进行操作的代码了~
阅读全文
0 0
- C++ 容器中自定义类型 value_type
- size_type value_type类型:
- 对于容器map的使用---map::value_type
- C++:pair,make_pair,value_type的示例
- 关联性容器存放自定义类型
- C++ 10.3 关联容器map定义以及value_type、key_type、mapped_type
- [C++]标准库类型容器
- STL中vector容器中元素为自定义类型时的效率分析
- STL中vector容器中元素为自定义类型指针时的内存泄漏问题
- STL中map容器使用自定义key类型报错详解
- STL容器可以“装”自定义类型吗?
- set容器存储自定义类型数据
- 无序容器unorder_map使用自定义类型
- 自定义类型在Set容器里
- 【C/C++开发】STL内嵌数据类型: value_type
- STL中容器类型区别
- C++-关联容器类型map
- STL value_type
- fedora21配置tftp服务器
- Kafka New Consumer API
- 获取JsonObject某一未知key的值
- jsp 接收后台返回数据判断CheckBox是否选中 简单例子只需一句代码
- 获取路径的参数值
- C++ 容器中自定义类型 value_type
- Java 希尔排序
- linux中与mysql兼容的数据库:mariadb
- 板端串口乱码,无数据
- 最短路径题目(Dijkstra)
- uboot之flash初始化
- git push error: 无法推送一些引用到XXX
- docker学习笔记
- java中连接池的几种方式