关联容器简介 口关联式容器内的元素是排序的,插入任何元素,都按相 应的排序准则来确定其位置。关联式容器的特点是在查 找时具有非常好的性能。 1) set/multiset:头文件<set> set即集合。set中不允许相同元素, multiset允许存在相 同的元素。 2)map/ multimap:头文件<map> map与e的不同在于map中存放的是成对的 key/value 并根据key对元素进行排序,可快速地根据key来检索元素 map同 multimap的不同在于是否允许多个元素有相同的 key值。 上述4种容器通常以平衡二叉树方式实现,插入和检索的 时间都是O(logN)
关联容器简介 关联式容器内的元素是排序的,插入任何元素,都按相 应的排序准则来确定其位置。关联式容器的特点是在查 找时具有非常好的性能。 1) set/multiset: 头文件 <set> set 即集合。set中不允许相同元素,multiset中允许存在相 同的元素。 2) map/multimap: 头文件 <map> map与set的不同在于map中存放的是成对的key/value。 并根据key对元素进行排序,可快速地根据key来检索元素 map同multimap的不同在于是否允许多个元素有相同的 key值。 上述4种容器通常以平衡二叉树方式实现,插入和检索的 时间都是 O(logN)
容器适配器简介 1) stack:头文件< stack> 栈。是项的有限序列,并满足序列中被删除、 检索和修改的项只能是最近插入序列的项。即 按照后进先出的原则 2) queue:头文件< queue> 队列。插入只可以在尾部进行,删除、检索和修 改只允许从头部进行。按照先进先出的原则 3) priority queue:头文件< queue> 优先级队列。最高优先级元素总是第一个出列
容器适配器简介 1) stack :头文件 <stack> 栈。是项的有限序列,并满足序列中被删除、 检索和修改的项只能是最近插入序列的项。即 按照后进先出的原则 2) queue :头文件 <queue> 队列。插入只可以在尾部进行,删除、检索和修 改只允许从头部进行。按照先进先出的原则。 3)priority_queue :头文件 <queue> 优先级队列。最高优先级元素总是第一个出列
容器 器的共有成员函数 1)所有标准库容器共有的成员函数: ■相当于按词典顺序比较两个容器大小的运算符: empty:判断容器中是否有元素 ■ max size:容器中最多能装多少元素 size:容器中元素个数 swap:交换两个容器的内容
容器的共有成员函数 1) 所有标准库容器共有的成员函数: ◼ 相当于按词典顺序比较两个容器大小的运算符: =, < , <= , > , >=, == , != ◼ empty : 判断容器中是否有元素 ◼ max_size: 容器中最多能装多少元素 ◼ size: 容器中元素个数 ◼ swap: 交换两个容器的内容
比较两个容器的例子 比较两个容器的例子: #include <vector> #include <iostream> int maino 若两容器长度相同、所有元素相 std: vector<int>vI; 等,则两个容器就相等,否则为 不等。 std: vector<int> v2; 若两容器长度不同,但较短容器 vI push back (5) 中所有元素都等于较长容器中对 vI push back (1); 应的元素,则较短容器小于另 v2. push back (1); 个容器 v2. push back(2); 若两个容器均不是对方的子序列, v2. push back 3) 则取决于所比较的第一个不等的 std: cout <<(v1<v2); 元素 return 0 输出: 0 19
比较两个容器的例子 19 比较两个容器的例子: #include <vector> #include <iostream> int main() { std::vector<int> v1; std::vector<int> v2; v1.push_back (5); v1.push_back (1); v2.push_back (1); v2.push_back (2); v2.push_back (3); std::cout << (v1 < v2); return 0; } •若两容器长度相同、所有元素相 等,则两个容器就相等,否则为 不等。 •若两容器长度不同,但较短容器 中所有元素都等于较长容器中对 应的元素,则较短容器小于另一 个容器 •若两个容器均不是对方的子序列, 则取决于所比较的第一个不等的 元素 输出: 0
容器的成员函数 2)只在第一类容器中的函数 begn返回指向容器中第一个元素的迭代器 end返回指向容器中最后一个元素后面的位 置的迭代器 begin返回指向容器中最后一个元素的迭代器 rend返回指向容器中第一个元素前面的位置 的迭代器 erase从容器中删除一个或几个元素 clear从容器中删除所有元素 Head Tail rend begin begin end
容器的成员函数 2) 只在第一类容器中的函数: begin 返回指向容器中第一个元素的迭代器 end 返回指向容器中最后一个元素后面的位 置的迭代器 rbegin 返回指向容器中最后一个元素的迭代器 rend 返回指向容器中第一个元素前面的位置 的迭代器 erase 从容器中删除一个或几个元素 clear 从容器中删除所有元素 Head Tail rend begin rbegin end