STL文档

STL文档

1List

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 );//删除startend之间的元素

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 );

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值