zoukankan      html  css  js  c++  java
  • STL应用 map poj 2418

    map 是一个将独一无二的键值与数值对应的数据结构,方便查找。
    c++ stl中的map实现是树结构,所以存储的键值是有次序的排列。
    还有另一种键值与数值对应的数据结构 unordered_map,使用的是哈希表,查找效率更高,但是存储的键值是无序排列。
    关联介绍 https://www.cnblogs.com/itdef/p/15083600.html
    常用的类函数如下:
    operator[]
    begin() end()
    empty()
    clear()
    insert()
    erase()
    swap()
    count()
    find()

    下面我们来看看 poj 2418 演示map的使用
    https://vjudge.net/problem/POJ-2418

    题目大意
    统计各种硬木树种,计算他们在总数中的百分比
    输入格式
    多行 每行输入一种物种名称  
    输出
    统计所有输入 然后输出各个物种名称和所占百分比 空格隔开
    精确度要求小数点后4位
    Sample Input
    Red Alder
    Ash
    Aspen
    Basswood
    Ash
    Beech
    Yellow Birch
    Ash
    Cherry
    Cottonwood
    Ash
    Cypress
    Red Elm
    Gum
    Hackberry
    White Oak
    Hickory
    Pecan
    Hard Maple
    White Oak
    Soft Maple
    Red Oak
    Red Oak
    White Oak
    Poplan
    Sassafras
    Sycamore
    Black Walnut
    Willow
    Sample Output
    Ash 13.7931
    Aspen 3.4483
    Basswood 3.4483
    Beech 3.4483
    Black Walnut 3.4483
    Cherry 3.4483
    Cottonwood 3.4483
    Cypress 3.4483
    Gum 3.4483
    Hackberry 3.4483
    Hard Maple 3.4483
    Hickory 3.4483
    Pecan 3.4483
    Poplan 3.4483
    Red Alder 3.4483
    Red Elm 3.4483
    Red Oak 6.8966
    Sassafras 3.4483
    Soft Maple 3.4483
    Sycamore 3.4483
    White Oak 10.3448
    Willow 3.4483
    Yellow Birch 3.4483
    

    解答
    使用map 接受输入 计算各个物种的出现次数与总次数比

    // ConsoleApplication1.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
    //
    
    #include <iostream>
    #include <map>
    #include <string>
    
    
    using namespace std;
    
    int main()
    {
    	string s; int count = 0;
    	map<string, int> mm;
    	while (getline(cin,s)) {
    		mm[s]++;
    		count++;
    	}
    
    	for (map<string, int>::iterator it = mm.begin(); it != mm.end(); it++) {
    		cout << it->first << " ";
    		printf("%.4f
    ",it->second*100.0/count);
    	}
    
    	return 0;
    }
    
    作 者: itdef
    欢迎转帖 请保持文本完整并注明出处
    技术博客 http://www.cnblogs.com/itdef/
    B站算法视频题解
    https://space.bilibili.com/18508846
    qq 151435887
    gitee https://gitee.com/def/
    欢迎c c++ 算法爱好者 windows驱动爱好者 服务器程序员沟通交流
    如果觉得不错,欢迎点赞,你的鼓励就是我的动力
    阿里打赏 微信打赏
  • 相关阅读:
    数据结构——栈与队列操作(用栈模拟队列)
    数据结构——链队列的基本算法
    数据结构——循环队列(动态分配空间)基本运算
    数据结构——顺序栈(动态分配空间)的基本操作
    D3画完整柱状图(带坐标轴、标签)
    D3学习之坐标系绘制
    d3实现折线图
    D3学习之画布制作
    网址——几个有用的
    使用.csv文件
  • 原文地址:https://www.cnblogs.com/itdef/p/15086106.html
Copyright © 2011-2022 走看看