set是集合,set中不会包含重复的元素,这是和vector的区别。 定义: 定义一个元素为整数的集合a,可以用 set<int> a; 基本操作: 对集合a中元素的有 插入元素:a.insert(1); 删除元素(如果存在):a.erase(1); 判断元素是否属于集合:if (a.find(1) != a.end()) ... 返回集合元素的个数:a.size() 将...
其行为与vector非常不同样:使用一个不在容器中keyword作为下标,会加入一个具有此keyword的元素到map中。 一般使用find函数取代下标操作。 3、Set是关联容器,set中每一个元素仅仅包括一个keyword。set支持高效的keyword查询操作——检查一个给定的keyword是否在set中。 set也是以红黑树的结构实现。支持高效插入、删除等操...
1.1 vector(数组)封装动态数组的顺序容器。 1.2 queue(队列)是容器适配器,他是FIFO(先进先出)的数据结构。 1.3 deque(双端队列)是有下标顺序容器,它允许在其首尾两段快速插入和删除。 1.4 set(集合)集合基于红黑树实现,有自动排序的功能,并且不能存放重复的元素。 1.5 unordered_set(无序集合)基于哈希表实现,...
4)set的使用场景:只负责查找内容(当然也会有添加的操作才能有),具体到某个单位,区别于vector一般是某个范围。使用场景比如对手机游戏的个人得分记录的存储,存储要求从高分到低分的顺序排列。 5)map的使用场景:只负责查找内容(当然也会有添加的操作才能有),具体到某个单位,但这个某个单位是在比set更大的范围。...
Multiset 和set的唯一区别是: 元素可以重复。 Map 每个元素都是key/value pair,其中key是排序准则的基准。每个key只能出现一次,不允许重复。Map也可是为一种关联式数组(associative array),也就是“索引可以为任意类型”的数组。 Multimap 和map的唯一区别是:元素可以重复,也就是multimap允许其元素拥有相同的key。Mult...
vector:它是一个动态分配存储空间的容器。区别于c++中的array,array分配的空间是静态的,分配之后不能被改变,而vector会自动重分配(扩展)空间。 set:其内部元素会根据元素的键值自动被排序。区别于map,它的键值就是实值,而map可以同时拥有不同的键值和实值。
顺序访问元素的容器,vector、list(双向链表)、deque(双端队列) vector:底层数据结构:数组 随机访问:O(1) 随机插入与删除:O(n),中间插入会引起后面数据的拷贝,尾部可快速增删 (2)关联式容器 无序关联容器 按键值排好序,底层数据结构均为红黑树 set,multiset,map, multimap,元素是否唯一的区别 ...
set<T> s; set<T> s(s1); set<T> s(b, e); 其中,b和e分别为迭代器的开始和结束的标记。 例如: #include <stdio.h> #include <vector> #include <set> using namespace std; int main(){ vector<int> v; for (int i = 0; i < 10; i++){ ...