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驱动爱好者 服务器程序员沟通交流
    如果觉得不错,欢迎点赞,你的鼓励就是我的动力
    阿里打赏 微信打赏
  • 相关阅读:
    好用的QT连接
    c指针点滴-指针与类型
    c指针点滴5-指针变量计算
    c指针点滴4-指针的值
    c指针点滴三(指针运算)
    c语言指针点滴1
    c指针点滴2之比大小
    c指针点滴1
    linux安装redis
    支付宝支付接口流程
  • 原文地址:https://www.cnblogs.com/itdef/p/15086106.html
Copyright © 2011-2022 走看看