container——Vector
一、什么是vector?
向量(Vector)是一个封装了动态大小数组的顺序容器(Sequence Container)。跟任意其它类型容器一样,它能够存放各种类型的对象。可以简单的认为,向量是一个能够存放任意类型的动态数组。
二、容器特性
1.顺序序列
顺序容器中的元素按照严格的线性顺序排序。可以通过元素在序列中的位置访问对应的元素。
2.动态数组
支持对序列中的任意元素进行快速直接访问,甚至可以通过指针算述进行该操作。操供了在序列末尾相对快速地添加/删除元素的操作。
3.能够感知内存分配器的(Allocator-aware)
容器使用一个内存分配器对象来动态地处理它的存储需求。
三、基本函数实现
实例代码:
关于greater<int>:
greater和less是xfunctional.h中的两个结构体,代码如下:
参考:https://www.cnblogs.com/lzhu/p/7010894.html
template<class _Ty = void> struct less { // functor for operator< typedef _Ty first_argument_type; typedef _Ty second_argument_type; typedef bool result_type; constexpr bool operator()(const _Ty& _Left, const _Ty& _Right) const { // apply operator< to operands return (_Left < _Right); } };
template<class _Ty = void> struct greater { // functor for operator> typedef _Ty first_argument_type; typedef _Ty second_argument_type; typedef bool result_type; constexpr bool operator()(const _Ty& _Left, const _Ty& _Right) const { // apply operator> to operands return (_Left > _Right); } };
greater表示内置类型从大到小排序,less表示内置类型从小到大排序。