STL文档
1 List
2 头文件:#include<list>
3 实例化:list<类型>ListName
4 原型:namespacestd { template <class T, class Allocator = allocator<T> > classlist; }
构造函数(使得可以在定义时赋初值) list (); list (size_type n, const TYPE &v) list (const list &from) list ( input_iterator start, input_iterator end) |
·无初值 ·给出n个初值 ·由另一个list初始化 ·由[start, end)区间内的值初始化 |
| |
void assign(input_iterator start, input_iterator end); void assign(size_type num, const | ·清空链表,插入区间[start, end)的内容到list中 ·清空链表,插入num个值为val的元素 |
| |
TYPE &val); | |||
TYPE &back() | 返回对最后一个元素的引用 | ||
TYPE &front() | 返回对第一个元素的引用 | ||
iterator begin() | 返回指向第一个元素的迭代器 | ||
iterator end() | 返回指向链表末尾(最后一个元素之后的那个位置)的迭代器 | ||
void clear() | 清空链表 | ||
bool empty() | 如果链表为空返回true,否则返回false | ||
iterator erase(iterator pos);iterator erase(iterator start, iterator end); | ·删除pos所指元素并返回下一元素迭代器 ·删除[start, end)之间的元素,并返回最后一个被删除元素的下个元素的迭代器 | ||
iterator insert( iterator pos,const TYPE &val ); void insert( iterator pos, size_type num,const TYPE &val); void insert( iterator pos, input_iterator start, input_iterator end ); | ·插入一个值为value的元素在pos位置并返回其迭代器,原pos及以后的元素后移。 ·插入num个值为value的元素在pos位置,原pos及以后元素后移。 ·插入[start, end)之间的元素到pos位置,原pos及以后元素后移 | ||
void merge(list &lst );void merge(list &lst, bool Cmpfunc) // bool Cmpfunc(Type &a, Type &b) | 将链表lst有序地合并到原链表中,默认使用小于号进行比较插入,可指定比较函数Cmpfunc,对两个TYPE类型元素进行比较 | ||
void pop_back(); | 删除链表的最后一个元素。 | ||
void pop_front(); | 删除链表的第一个元素。 | ||
void push_back( const TYPE &val ); | 将val连接到链表的最后。 | ||
void push_front( const TYPE &val ); | 将val连接到链表的头部。 | ||
void remove(const TYPE &val ); | 删除链表中所有值为val的元素。 | ||
void remove_if(bool testfunc) // bool testfunc(TYPE &val) | 用testfunc一元函数来判断是否删除元素 如果testfunc返回true则删除该元素。 | ||
size_type size() | 返回list中元素的数量。 | ||
void resize( size_type n, TYPE val = 0) | 将链表大小重置为n,若n < size()只保留前面n个元素,否则最后size() - n个元素置为value(如果不给出,默认为0) | ||
void reverse(); | 将链表所有元素倒转。 | ||
void sort(); void sort(Comp compfunc); | 提供nlog2n的排序效率,默认使用小于号排序,可以自己指定排序函数。 | ||
void splice( iterator pos, list &lst ) void splice( iterator pos, list &lst, iterator del ); void splice(iterator pos, list &lst, iterator start, iterator end) | ·将lst链表插入到这个链表的pos位置(pos及其后元素后移) ·将lst链表中del所指元素插入到这个链表的pos位置 ·将lst链表中[start, end)之间的元素插入到这个链表的pos位置 | ||
void swap( list &lst ); | 交换两个链表中的元素 | ||
void unique(); | 去除链表中重复元素(离散化)。 | ||
reverse_iterator rbegin(); | 返回一个逆向迭代器,指向链表的末尾 | ||
reverse_iterator rend(); | 返回一个指向开头之前位置的逆向迭代器 |
2.1 C++ Vector(向量容器)
1.Constructors | 构造函数 vector<int> v1; //构造一个空的vector vector<int> v1( 5, 42 ); //构造了一个包含5个值为42的元素的Vector |
2.Operators | 对vector进行赋值或比较 |
3.assign() | 对Vector中的元素赋值 语法: void assign( input_iterator start, input_iterator end ); // 将区间[start, end)的元素赋到当前vector void assign( size_type num, const TYPE &val ); // 赋num个值为val的元素到vector中,这个函数将会清除掉为vector赋值以前的内容.
|
4.at() | 返回指定位置的元素 语法: TYPE at( size_type loc );//差不多等同v[i];但比v[i]安全; |
5.back() | 返回最末一个元素 |
6.begin() | 返回第一个元素的迭代器 |
7.capacity() | 返回vector所能容纳的元素数量(在不重新分配内存的情况下 |
8.clear() | 清空所有元素 |
9.empty() | 判断Vector是否为空(返回true时为空) |
10.end() | 返回最末元素的迭代器(译注:实指向最末元素的下一个位置) |
11.erase() | 删除指定元素 语法: iterator erase( iterator loc );//删除loc处的元素 iterator erase( iterator start, iterator end );//删除start和end之间的元素 |
12.front() | 返回第一个元素的引用 |
13.get_allocator() | 返回vector的内存分配器 |
14.insert() | 插入元素到Vector中 语法: iterator insert( iterator loc, const TYPE &val ); //在指定位置loc前插入值为val的元素,返回指向这个元素的迭代器, void insert( iterator loc, size_type num, const TYPE &val ); //在指定位置loc前插入num个值为val的元素 void insert( iterator loc, input_iterator start, input_iterator end ); //在指定位置loc前插入区间[start, end)的所有元素 |
15.max_size() | 返回Vector所能容纳元素的最大数量(上限) |
16.pop_back() | 移除最后一个元素 |
17.push_back() | 在Vector最后添加一个元素 |
18.rbegin() | 返回Vector尾部的逆迭代器 |
19.rend() | 返回Vector起始的逆迭代器 |
20.reserve() | 设置Vector最小的元素容纳数量 //为当前vector预留至少共容纳size个元素的空间 |
21.resize() | 改变Vector元素数量的大小 语法: void resize( size_type size, TYPE val ); //改变当前vector的大小为size,且对新创建的元素赋值val |
22.size() | 返回Vector元素数量的大小 |
23.swap() | 交换两个Vector 语法: void swap( vector &from ); |