牛牛想尝试一些新的料理,每个料理需要一些不同的材料,问完成所有的料理需要准备多少种不同的材料。(Hash)

    xiaoxiao2021-04-17  45

    网易2017春招内推笔试题

    题目:

    牛牛想尝试一些新的料理,每个料理需要一些不同的材料,问完成所有的料理需要准备多少种不同的材料。

    输入描述:

    每个输入包含 1 个测试用例。每个测试用例的第 i 行,表示完成第 i 件料理需要哪些材料,各个材料用空格隔开,输入只包含大写英文字母和空格,输入文件不超过 50 行,每一行不超过 50 个字符。输出描述: 输出一行一个数字表示完成所有料理需要多少种不同的材料。
    输入例子:
    BUTTER FLOUR HONEY FLOUR EGG
    输出例子:
    4 题目分析: 每行代表一种料理,每种料理的材料有该行的单词构成,材料(单词)之间用空格隔开。 求材料的总数量。这不是Hash中的Set集合嘛 代码如下: #include<iostream> #include<set> #include<string> using namespace std; int main(){ string str; set<string> resource; //在VC6.0下测试:换新一行,按Ctrl+Z 停止输入,按两次Enter键输出结果 while(cin>>str) { resource.insert(str); } cout<<resource.size()<<endl; return 0; }程序运行结果: 如果读者对结束按Ctrl+Z结束输入这一块有困惑的话,可以百度下"C,C++结束输入时的结束符" #include<stdio.h> int main(){ while(getchar()!=EOF); return 0; }在Windows下,按下Ctrl+Z键可以产生键盘输入流的结束标记(在linux下使用Ctrl+D键),然后按回车就会关闭了。 下面介绍Set集合的一些函数

    c++ stl容器set成员函数:begin()--返回指向第一个元素的迭代器

    c++ stl容器set成员函数:clear()--清除所有元素

    c++ stl容器set成员函数:count()--返回某个值元素的个数

    c++ stl容器set成员函数:empty()--如果集合为空,返回true

    c++ stl容器set成员函数:end()--返回指向最后一个元素的迭代器

    c++ stl容器set成员函数:equal_range()--返回集合中与给定值相等的上下限的两个迭代器

    c++ stl容器set成员函数:erase()--删除集合中的元素

    c++ stl容器set成员函数:find()--返回一个指向被查找到元素的迭代器

    c++ stl容器set成员函数:get_allocator()--返回集合的分配器

    c++ stl容器set成员函数:insert()--在集合中插入元素

    c++ stl容器set成员函数:lower_bound()--返回指向大于(或等于)某值的第一个元素的迭代器

    c++ stl容器set成员函数:key_comp()--返回一个用于元素间值比较的函数

    c++ stl容器set成员函数:max_size()--返回集合能容纳的元素的最大限值

    c++ stl容器set成员函数:rbegin()--返回指向集合中最后一个元素的反向迭代器

    c++ stl容器set成员函数:rend()--返回指向集合中第一个元素的反向迭代器

    c++ stl容器set成员函数:size()--集合中元素的数目

    c++ stl容器set成员函数:swap()--交换两个集合变量

    c++ stl容器set成员函数:upper_bound()--返回大于某个值元素的迭代器

    c++ stl容器set成员函数:value_comp()--返回一个用于比较元素间的值的函数

    转载请注明原文地址: https://ju.6miu.com/read-674391.html

    最新回复(0)