首页 > 其他分享 >map & unordered_map

map & unordered_map

时间:2024-09-25 12:12:13浏览次数:7  
标签:map cout iter second dict unordered

map

#include <bits/stdc++.h> //map的基本操作如下
using namespace std;

int main()
{
    // 构造函数
    map <string,int> dict;
    //   下标类型 存储的值的类型  

    // 插入数据的三种方式
    dict.insert(pair <string,int> ("apple",2));
    dict.insert(map <string, int> :: value_type("orange",3));
    dict["banana"] = 6;

    // 判断是否有元素
    if(dict.empty())
        cout<<"该字典无元素"<<endl;
    else
        cout<<"该字典共有"<<dict.size()<<"个元素"<<endl;

    // 遍历
    map <string,int> :: iterator iter;
    for(iter = dict.begin();iter != dict.end();iter++)
    {
        cout << iter->first << ends << iter->second << endl;
    }

    // 查找
    if((iter = dict.find("banana")) != dict.end()) //  返回一个迭代器指向键值为key的元素,如果没找到就返回end()
        cout << "已找到banana,其value为" << iter->second << "." << endl;
    else
        cout << "未找到banana." << endl;

    if(dict.count("watermelon") == 0) // 返回键值等于key的元素的个数
        cout << "watermelon不存在" << endl;
    else
        cout << "watermelon存在" << endl;

    pair <map<string,int> :: iterator, map<string,int> :: iterator> ret;
    ret = dict.equal_range("banana"); // 查找键值等于 key 的元素区间为[start,end),指示范围的两个迭代器以 pair 返回
    cout << ret.first->first << ends << ret.first->second << endl;
    cout << ret.second->first << ends << ret.second->second << endl;

    iter = dict.lower_bound("boluo"); // 返回一个迭代器,指向键值>=key的第一个元素。
    cout << iter->first << endl;
    iter = dict.upper_bound("boluo"); // 返回一个迭代器,指向值键值>key的第一个元素。
    cout << iter->first << endl;
    return 0;
}

unordered_map

#include<bits/stdc++.h>    
using namespace std;  

int main()
{
    unordered_map <string,int> dict; // 声明unordered_map对象

    // 插入数据的三种方式
    dict.insert(pair<string,int>("apple",2));
    dict.insert(unordered_map<string, int>::value_type("orange",3));
    dict["banana"] = 6;

    // 判断是否有元素
    if(dict.empty())
        cout<<"该字典无元素"<<endl;
    else
        cout<<"该字典共有"<<dict.size()<<"个元素"<<endl;

    // 遍历
    unordered_map <string,int> :: iterator iter;
    for(iter = dict.begin();iter != dict.end();iter++)
        cout << iter->first << ends << iter->second << endl;

    // 查找
    if(dict.count("boluo") == 0)
        cout << "can't find boluo!" << endl;
    else
        cout << "find boluo!" << endl;

    if((iter = dict.find("banana")) != dict.end())
        cout << "banana=" << iter->second << endl;
    else
        cout << "can't find boluo!" << endl;

    return 0;
}

CSDN讲解

. . . . . .

标签:map,cout,iter,second,dict,unordered
From: https://www.cnblogs.com/Domi2011/p/18431053

相关文章

  • C++: unordered系列关联式容器
    目录1.unordered系列关联式容器1.1unordered_map1.2unordered_set2.哈希概念3.哈希冲突4.闭散列5.开散列博客主页:酷酷学感谢关注!!!正文开始1.unordered系列关联式容器在C++98中,STL提供了底层为红黑树结构的一系列关联式容器,在查询时效率可达到......
  • vue+谷歌地图Google Map的使用(四)
    前言本篇文章,主要是为了解决文章一内容的实现在实际项目中造成的性能BUG一、文章一在实际项目运用时的问题文章中,主要是讲了如何在项目中引入谷歌地图的库,并在相应组件的DIV中展示出来。但是,要注意~其中的例子只是一个简单的vueDEMO效果,并不涉及多个组件,所以在当时,是将......
  • Map and Set
    MapandSet1.搜索树1.1概念二叉搜索树又称二叉排序树,他或者是一颗空树,或者是具有一下性质的二叉树若它的左子树不为空则左子树上所有节点都小于根节点的值若它的右子树不为空则右子树上所有节点都大于根节点的值他的左右子树也分别是二叉搜索树//创建一个二叉搜索......
  • MapStruct 超神进阶用法,让你的代码效率提升十倍!
     MapStruct是一个强大且灵活的映射框架,很好的解决有关对象转换的问题,实现了代码的简洁和性能的兼顾。MapStruct的常规用法,网上有很多教程了,本文将列举一些进阶用法,方便日常开发使用。expression在转化的时候,执行java表达式,直接看例子:@Mapper(componentModel="spring")public......
  • MapStruct 超神进阶用法,让你的代码效率提升十倍!
     MapStruct是一个强大且灵活的映射框架,很好的解决有关对象转换的问题,实现了代码的简洁和性能的兼顾。MapStruct的常规用法,网上有很多教程了,本文将列举一些进阶用法,方便日常开发使用。expression在转化的时候,执行java表达式,直接看例子:@Mapper(componentModel="spring")public......
  • 《 C++ 修炼全景指南:十二 》用红黑树加速你的代码!C++ Set 和 Map 容器从入门到精通
    摘要本文详细介绍了基于红黑树实现的Set和Map容器,包括其底层设计原理、插入和删除操作的实现细节、性能分析与优化策略,以及实际应用场景和未来发展方向。通过采用红黑树的数据结构,Set和Map容器能够高效地处理有序数据,保持O(logn)的时间复杂度,适用于各种数据存储......
  • Map底层源码剖析
    提示:此文章为简略版文章目录前言一、key的类型要求二、读与写2.1读2.2写2.3删除2.4遍历三、并发冲突四、核心逻辑4.1哈希存储4.2哈希冲突4.3go中拉链法解决hash冲突五、数据结构5.1hmap5.2bmap前言桶数组(可以理解为数组内存地址是连续的)链表(内......
  • 【大数据】MapReduce的“内存增强版”——Spark
    【大数据】MapReduce的“内存增强版”——Spark文章脉络Spark架构Spark-coreSparkConf和SparkContextRDDSpark集群Spark-sql在大数据时代,数据处理和分析成为企业竞争的重要手段。Hadoop作为大数据处理的基石,其核心组件MapReduce在众多场景中发挥了巨大作用。但是......
  • mapper返回值类型
    在MyBatis中,Mapper接口的方法可以返回不同类型的值,这取决于你希望如何处理查询的结果。以下是一些常见的返回类型:void:当不需要返回值时使用。通常用于INSERT、UPDATE和DELETE操作。int 或 Integer:返回受影响行数,通常用于检查操作是否成功。boolean:通常用于检查是......
  • 15.6 创建prometheus使用的配置configmap
    本节重点介绍:config简介prometheusconfigmap编写configmap作用ConfigMap是一种API对象,用来将非机密性的数据保存到键值对中使用时,Pods可以将其用作环境变量、命令行参数或者存储卷中的配置文件。为何prometheus需要configmapprometheus的配置文件需要以configmap形式挂载编......