STL 算法部分主要由头文件 ,, 组成。要使用 STL 中的算法函数必须包含头文件 ,对于数值算法须包含 , 中则定义了一些模板类,用来声明函数对象。 非可变序列算法
template <class InputIterator, class T> T accumulate(InputIterator first, InputIterator last, T init) { for ( ; first != last; ++first) init = init + *first; return init; } template <class InputIterator, class T, class BinaryOperation> T accumulate(InputIterator first, InputIterator last, T init, BinaryOperation binary_op) { for ( ; first != last; ++first) init = binary_op(init, *first); return init; } template <class InputIterator1, class InputIterator2, class T> T inner_product(InputIterator1 first1, InputIterator1
vector底层实现使用连续数组,提供动态数组功能 1. 数据结构 template <class T, class Alloc = alloc> class vector { protected: iterator start; iterator finish; iterator end_of_storage; }; 2. 构造&添加 .1. construct 操作 // 建构式,指定 vector
广义上存储都是指数据中心里面使用的存储设备,这里面包含了存储硬件系统、软件系统、存储网络和存储解决方案。存储软件系统对存储中的数据提供管理,
list底层实现是使用双向链表,内部有个node节点指向链表尾部,实现循环链表,提供快速插入删除操作。 1. 数据结构 template <class T> struct __list_node { typedef void* void_pointer; void_pointer prev; // 类别
会根据元素键值自动被排序,所有元素都是 pair,同时拥有实值 value 和键值 key,其 pair 是 <key,pair>。键值不可改变,正值可以。