做网站为什么要用php,制作网页软件下载,网站数据没有更新,做h5单页的网站Cset
1. 关联式容器
vector、list、deque、forward_list(C11)等STL容器#xff0c;其底层为线性序列的数据结构#xff0c;里面存储的是元素本身#xff0c;这样的容器被统称为序列式容器。而map、set是一种关联式容器#xff0c;关联式容器也是用来存储数据的#xff0…Cset
1. 关联式容器
vector、list、deque、forward_list(C11)等STL容器其底层为线性序列的数据结构里面存储的是元素本身这样的容器被统称为序列式容器。而map、set是一种关联式容器关联式容器也是用来存储数据的与序列式容器不同的是关联式容器里面存储的是key, value结构的键值对在数据检索时比序列式容器效率更高。map和set的键是唯一的但是mutimap和multiset支持多个同名且有不同映射的键共存。
2. 键值对
用来表示具有一一对应关系的一种结构该结构中一般只包含两个成员变量key和value, key代表键值value表示与key对应的信息。比如学生的姓名和他的学号是一一对应的那么就可以通过查找学生的姓名来查找到对应的学号。set容器是Key结构。set不允许存在相同的keymultiset除外且key不可修改因为会破坏内部的红黑树结构。
3.set容器
形参含义 T键值对应value的类型 Compare:比较器的类型缺省情况下按照小于来比较一般情况下内置类型元索该参数不需要传递如果无法比较时自定义类型需要用户自己显式传递比较规则一般情况下按照函数指针或者仿函数来传递 Alloc通过空间配置器来申请底层空间不需要用户传递除非用户不想使用标准库提供的空间配置器 4.set的成员函数
4.1 map的成员函数介绍
set的构造
函数声明功能介绍sets()构造一个空的set
set的迭代器
函数声明功能介绍begin()和end()begin:首元素的位置end下一个元素的位置cbegin()和cend()c指constcbegin和cend指向的内容不能修改rbegin()和rend()反向迭代器rbegin从end开始rend从begin开始其和–的方向相反crbegin()和crend()与前一个功能相同但指向的内容不能修改
set的容量与元素访问
函数名函数声明功能介绍emptybool empty() const检测set中的元素是否为空为空返回ture不为空返回falsesizesize_type size() const返回set中有效元素的个数
set的修改
函数名函数声明功能介绍insertpairiterator,bool insert (const value_type val)在set中插入键值对x注意x是一个键值对返回值也是键值对iterator代表新插入元素的位置bool代表插入成功erasevoid erase (iterator position)删除position位置上的元素size_type erase (const value_type val)删除键值为x的元素void erase (iterator first, iterator last)删除**[first,last)**区间中的元素swapvoid swap (set x)交换两个set中的元素clearvoid clear()删除set里所有的元素
set的比较:
函数名函数声明功能介绍key_compvalue_comp
set的操作
函数名函数声明功能介绍finditerator find (const value_type val) const搜索set里键等于k的元素如果找到返回一个映射的迭代器找不到返回end的迭代器,find函数默认查找中序的第一个相等的值countsize_type count (const value_type val) const搜索set里键等于k的元素找到返回1找不到返回0lower_bounditerator lower_bound (const value_type val) const在set里找k的元素返回符合情况的最小键的迭代器upper_bounditerator upper_bound (const value_type val) const在set里找k的元素返回符合情况的最小键的迭代器equal_rangepairiterator,iterator equal_range (const value_type val) const
5. multimap和multiset
mutiset(map)相等的值可以在左孩子也可以在右孩子会调整树的结构无所谓插在哪里。