• 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驱动爱好者 服务器程序员沟通交流
    如果觉得不错,欢迎点赞,你的鼓励就是我的动力
    阿里打赏 微信打赏
  • 相关阅读:
    关于Dockerfile
    hiho一下 第六十四周 Right-click Context Menu
    hdu2642二维树状数组单点更新+区间查询
    东大oj-1511: Caoshen like math
    东大OJ-1588: Routing Table
    东大oj-1591 Circle of friends
    2015年辽宁省赛Interesting Tree
    东大OJ-1544: GG的战争法则
    迷宫问题-广度优先搜索
    vijos P1009清帝之惑之康熙
  • 原文地址:https://www.cnblogs.com/itdef/p/15086106.html
Copyright © 2020-2023  润新知