引用
现有若干个集合的数据,每个数据集合可以自选一个指标参加排序。这些指标包含如下四种:
Min,取集合中元素的最小值
Max,取集合中元素的最大值
Mean,取集合中元素的平均值,平均值的计算公式为:(V1+V2+…+Vn) / n
Median,取集合中元素的中值,中值的计算公式为:(Vmin+Vmax) / 2
读入数据后,输出时请根据各个集合选择的指标对这些集合进行降序排列,每个集合内的元素请升序排列。
要求:必须使用标准容器和标准泛型算法,否则本题不得分。
输入文件:C:\2_in.txt。每行一个集合。[]内为该集合选取的用于集合间排序的指标。随后为集合内各个元素,元素个数不定,以空格分隔。
输出文件:C:\2_out.txt。首行08XXXX应替换为本人的学号,第二行起每行输出一个集合。{}内为计算出该集合的排序指标值,随后为该集合的各个元素的升序排列。
输入样例:C:\2_in.txt
[Max]8 3 15
[Min]9 10 1 2 7
[Median]2 4
[Mean]30 20 10
输出样例:C:\2_out.txt
Done by 08XXXX
{20}10 20 30
{15}3 8 15
{3}2 4
{1}1 2 7 9 10
我写了个类专门处理取各种指标的操作。这样的话这道题其实也很复杂
基础知识:
1)面向对象的类的创建
class MyContainer
{
private:
string indicator;
vector<int> container;
int key;
bool isValid;
void setIndicator(string & str);
void setContainer(string & str);
void setKey();
public:
MyContainer(string & str);
MyContainer();
int getKey() const;
int IsValid() const;
};
2) STL集合
vector<int> container;
map<string, MyContainer> out;
3)<<操作符重载
ostream & operator <<(ostream & os, MyContainer c);
4)友元
class MyContainer
{
...
friend ostream & operator <<(ostream & os, MyContainer c);
};
5)字符串解析 string, string::npos, find, substr
void MyContainer::setIndicator(string & str)
{
int first = str.find("[");
int last = str.find("]");
if (first==string::npos || last == string::npos || last-first<=1)
{
isValid = false;
return;
}
indicator = str.substr(first+1, last-first-1);
}
6)STL操作
void MyContainer::setContainer(string & str)
{
...
sort(container.begin(),container.end());
}
void MyContainer::setKey()
{
if (indicator=="Max")
key= *max_element(container.begin(), container.end());
else if (indicator == "Min")
key = *min_element(container.begin(),container.end());
else if(indicator == "Mean")
key = accumulate(container.begin(),container.end(), 0)/container.size();
else if(indicator == "Median")
key = (*max_element(container.begin(), container.end())+*min_element(container.begin(),container.end()))/2;
else
isValid = false;
}
分享到:
相关推荐
c++面试题面试题面试题面试题面试题面试题面试题面试题面试题面试题面试题面试题面试题面试题面试题面试题面试题面试题面试题面试题面试题面试题面试题面试题面试题面试题面试题面试题面试题面试题面试题面试题面试...
电工学习题与答案电工学习题与答案电工学习题与答案电工学习题与答案电工学习题与答案电工学习题与答案电工学习题与答案电工学习题与答案电工学习题与答案电工学习题与答案电工学习题与答案电工学习题与答案电工学习...
C++面试题笔试题C++ 数据结构算法笔试题资料合集: 50个C、C++面试题.pdf C++ 数据结构、算法笔试题.docx C++基础面试题.docx C++开发工程师面试题库.docx C++技能测试试卷一及答案.docx C++技能测试试卷二及答案....
面试题面试题面试题面试题面试题面试题面试题面试题面试题面试题面试题面试题面试题面试题面试题面试题面试题面试题面试题面试题面试题面试题面试题面试题面试题面试题面试题面试题面试题面试题面试题面试题面试题...
spring笔试题选择和简答题和springboot+cloud选择题和简答题
flahas3.0面试题 flash as3.0面试题 as3.0面试题 as3.0面试题最新面试题新面试题新面试题新面试题新面试题新面试题新面试题新面试题新面试题新面试题新面试题新面试题新面试题新面试题新面试题新面试题新面试题新...
本资源包含历年来计算机二级python真题题库(题目+答案)电子版笔记1,共15套真题,80道习题及2套练习题。计算机二级python考试的大部分内容都十分基础,可以帮助初学者用来入门Python。考试有40分的单选题、60分的...
【BAT必备】分布式相关面试题大全面试题【BAT必备】分布式相关面试题大全面试题【BAT必备】分布式相关面试题大全面试题【BAT必备】分布式相关面试题大全面试题【BAT必备】分布式相关面试题大全面试题【BAT必备】...
自己整理一些大厂的面试题题库,都是一些常见的题目,希望能给大家提供帮助,题库分为3个部分这是第二部分
) 判断题348题,填空题110题,选择题511题,简答题122题!电子竞技大赛题库(87页超全版!) 判断题348题,填空题110题,选择题511题,简答题122题!电子竞技大赛题库(87页超全版!) 判断题348题,填空题110题,选择题...
最全的j2EE面试题,题量大、经典,是我面试的整理试题 1、java笔试题大集合 2、各个公司面试题 3、J2EE初学者面试题 4、J2EE面试题(打码查错题) 5、java_华为笔试题 6、java常见面试题 7、java程序员面试宝典 8、...
2-springboot cloud 28题选择题和2简答题,word后附有答案,面试必需掌握的技能,你值得拥有!
stm32技术单选题单选题判断题
JAVA面试题JAVA面试题JAVA面试题JAVA面试题JAVA面试题JAVA面试题
1.《计算机图形学》习题.doc(填空题15题,选择题35题,简答及应用题12题,计算题6题,推导题1题,作图题3题); 2.计算机图形学测试题.doc(选择题206题); 3.图形学复习与试题样例.doc(判断题15题,选择填空题30题...
几十道问答题,计算题几乎涵盖了高频的所有内容,当年我们就是靠着这份资料 把高频彻底搞明白了,最后有惊无险的拿到了高分~~
java习题,常见类型题,面试题,笔试题
2023java最新阿里巴巴面试题2023java最新阿里巴巴面试题2023java最新阿里巴巴面试题2023java最新阿里巴巴面试题2023java最新阿里巴巴面试题2023java最新阿里巴巴面试题2023java最新阿里巴巴面试题2023java最新阿里...
考试,测试 ,选择题 ,题库,考试,测试 ,选择题 ,题库
Android移动应用开发期末复习题库(选择题+填空题+编程题) 适合大学专业课期末考试复习刷题