STL - 常用关联容器代码 - set & multiset

代码如下:

/*
        5. set & multiset
    */

    set<string> cities{
        "Braunschweig", "Hanover", "Frankfurt", "New York",
        "Chicago", "Toronto", "Paris", "Frankfurt"
    };
    multiset<string> dup_cities {
        "Braunschweig", "Hanover", "Frankfurt", "New York",
        "Chicago", "Toronto", "Paris", "Frankfurt"
    };
    cout << "cities before:" << endl;
    ContainerUtil<set<string>>::printElements(cities);
    ContainerUtil<multiset<string>>::printElements(dup_cities);

    cities.insert({ "London", "Munich", "Hanover", "Braunschweig" });
    dup_cities.insert({ "London", "Munich", "Hanover", "Braunschweig" });
    cout << "cities after:" << endl;
    ContainerUtil<set<string>>::printElements(cities);
    ContainerUtil<multiset<string>>::printElements(dup_cities);

运行结果:
cities before:
  Braunschweig  Chicago  Frankfurt  Hanover  New York  Paris  Toronto
  Braunschweig  Chicago  Frankfurt  Frankfurt  Hanover  New York  Paris  Toronto
cities after:
  Braunschweig  Chicago  Frankfurt  Hanover  London  Munich  New York  Paris  Toronto
  Braunschweig  Braunschweig  Chicago  Frankfurt  Frankfurt  Hanover  Hanover  London  Munich  New York  Paris  Toronto

时间: 2024-10-29 03:53:58

STL - 常用关联容器代码 - set & multiset的相关文章

STL - 常用顺序容器代码

不多说,看代码 #include <iostream> #include <vector> #include <deque> #include <list> #include <forward_list> #include "ContainerTest.h" #include "ContainerUtil.h" using namespace std; void ContainerTest::run() {

初探STL之关联容器

关联容器 分类:set, multiset, map, multimap 特点:内部元素有序排列,新元素插入的位置取决于它的值,查找速度快. 常用函数: find: 查找等于某个值 的元素(x小于y和y小于x同时不成立即为相等) lower_bound : 查找某个下界 upper_bound : 查找某个上界 equal_range : 同时查找上界和下界 count :计算等于某个值的元素个数(x小于y和y小于x同时不成立即为相等) insert: 用以插入一个元素或一个区间 set 特点:

C++STL之关联容器【map】【set】

map以键-值対的形式组织,键的作用在于索引,而值表示所存储和读取数据. set仅包含一个键,并且有效的支持某个键是否存在的查询. 他们都是基于标准型类库pair实现,该类型在utility头文件中. 一:关于pair类型的操作 pair<T1,T2> p1; //创建一个空pair类型 pair<T1,T2> p1(v1,v2); //创建并初始化 make_pair(v1,v2) //生成pair对象 <,>,==,!=  //类型之间比较,遵循字典序,先比较fir

STL之关联容器的映射底层

STL的关联容器有set, map, multiset, multimap.用于实现它们的底层容器有划入标准的rb_tree和待加入标准的hashtable. 底层容器rb_tree为上层容器提供了一种有序的服务.关键步骤时间复杂度为O(lgN); 底层容器hashtable为上层容器提供的是无序的服务,但其关键步骤的时间复杂度为O(1). 那么上层容器是怎么映射到底层容器中去的呢?下面以set和map为例,说明它们是如何映射到rb_tree和hashtable的. 1 rb_tree模板头 对

C++学习STL之关联容器 --- pair、map、set

本博文我们继续讨论标准模板库STL的关联容器: 主要有:pair.map.set. 一:pair pair是一种简单的关联类型,不属于容器范围.而是代表一个 key-value键值对. 创建.初始化.操作 示例代码如下: 1 #include <iostream> 2 #include <string> 3 #include <vector> 4 using namespace std; 5 //将pair放入容器&initpair 6 int main(int

0717-----C++Primer听课笔记----------STL之关联容器

1.Map 1.1 map<K, V>是一种pair的容器,pair的种类是pair<K, V>.map采用下标访问一个已存在的key, 会更新value,访问map中不存在的元素时,会增加一个新的键值对.map中的元素按照key进行从小到大排列.map的底层实现是采用二叉树,一般是使用红黑树. #include <iostream> #include <string> #include <map> using namespace std; /*

STL标准库-容器-set与multiset

摘要: 技术在于交流.沟通,转载请注明出处并保持作品的完整性. set与multiset关联容器 结构如下 set是一种关联容器,key即value,value即key.它是自动排序,排序特点依据key set的key不能相同.multiset的key相同.关联容器的查找效率要高于顺序容器很多很多. set和multiset不提供用来直接存取元素的任何操作函数,取值需要通过迭代器 一 定义 1.set/mulitiset以红黑树为底层结构,因此有元素自动排序的特性,排序是根据key,而set.m

STL之关联容器

关联容器支持高效的关键字查找和访问.两个主要的关联容器(associative-container)类型是map和set.标准库提供8个关联容器,它们的不同体现在三个维度上: 或者是一个set,或者是一个map 或者要求不重复的关键字,或者允许重复关键字 按顺序保存元素,或无序保存. 允许重复关键字的容器的开头名字中都包含单词multi:不保持关键字按顺序存储的容器的名字都以单词unordered开头. 类型map和multimap定义在头文件map中:set和multiset定义在头文件set

C++ STL学习之容器set和multiset (补充材料)

一.set和multiset基础 set和multiset会根据特定的排序准则,自动将元素进行排序.不同的是后者允许元素重复而前者不允许. 需要包含头文件: #include <set> set和multiset都是定义在std空间里的类模板: 1 template<class _Kty, 2 class _Pr = less<_Kty>, 3 class _Alloc = allocator<_Kty> > 4 class set 1 template&l