18
2019
09

c++标准模板库

1. 容器


    容器用于存储数据元素,它们是由长度(元素个数)可变的同类型的元素所构成的序列,如向量、集合、栈、队列等。


    vector<元素类型>:用于快速定位(访问)任意位置上的元素以及主要在元素序列的尾部增加/删除元素的场合。在vector头文件中定义,用动态数组实现。


    map<关键字类型,值类型> 和 multimap<关键字类型,值类型>:元素按关键字排序,multimap中不同元素的关键字可以相同,在map头文件中定义,常常用某种二叉树实现。


    set<元素类型>和multiset<元素类型>:在set头文件中定义,set可以用于去重。


    basic_string<元素类型>:与vector相似,不同之处在于其元素类型是字符类型,并提供一系列与字符串相关的操作。string和wstring是它的两个实例basic_string<char>和basic_string<wchar_t>。在string头文件中定义。


    list<元素类型>:用于经常在元素序列中任意位置上插入/删除元素的场合。在list头文件中定义,用双向链表实现。


    deque<元素类型>:用于主要在元素序列的两端增加/删除元素以及需要快速定位(访问)任意位置上的元素的场合。在deque头文件定义,用分段的连续空间结构实现。


    stack<元素类型>:用于仅在元素序列的尾部增加/删除元素的场合,在stack头文件中定义,一般基于deque来实现。


    queue<元素类型>:用于仅在元素序列的尾部增加,头部删除元素的场合。在queue头文件中定义,一般基于deque来实现。


    priority_queue<元素类型>:与queue的操作类似,不同之处在于每次增加元素之后,它将对元素位置进行调整,使得头部元素总是最大的。也就是说,每次删除的总是最大的元素。在queue头文件中定义,一般基于vector和heap结构来实现。




2. 迭代器


    迭代器实现了抽象的指针(智能指针),它们指向容器中的元素,用于对容器中的元素进行访问和遍历。


    输入迭代器:只能用于读取它所指向的容器元素。


    输出迭代器:只能用于修改它所指向的容器元素。


    前向迭代器:可以用于读取和修改它所指向的容器元素。


    双向迭代器:可以用于读取/修改它所指向的容器元素。


    随机访问迭代器:可以用于读取/修改它所指向的容器元素。




3. 算法


    调序算法:改变容器中元素的次序。如sort reverse random_shuffle等


    编辑算法:用于实现对容器元素的复制、替换、删除、交换、合并、赋值等操作。如copy replace remove unique swap等


    查找算法:用于在容器中查找元素或子元素序列。如find count search等


    算术算法:用于对容器内的元素进行求和、内积和、差等。如accumulate partial_sum inner_product等


    集合算法:用于实现集合的运算。如include set_union set_intersection等


    堆算法:用于实现按对结构存储和操作容器中的元素,具有堆结构的容器的主要特点之一是:第一个元素总是最大的。如make_heap pop_heap等


    元素遍历并操作算法:依次访问一个范围内的每个元素,并对每个元素调用某个指定的操作函数或函数对象f。for_each




    

« 上一篇 下一篇 »

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。