首页 > 其他 > 详细

Tuple初探

时间:2017-01-09 20:23:45      阅读:227      评论:0      收藏:0      [点我收藏+]

/*****************版权声明************************/

大家好,我是小鸭,有问题可来邮件咨询:lxyjiang@gmail.com

 

/*****************问题提出************************/

先来一个问题,这个问题来自于慕课网的问答区 http://www.imooc.com/wenda/detail/340254

其原问题如下:

  如果语文数学两门课程的成绩,甲同学分别是80分和90分,乙同学是90分和80分,丙同学是70和60分,这时比较甲同学和乙同学的成绩,只能说语文较差,数学较好,综合到一起就属于无法比较,但对丙同学可以比较,可以说甲和乙同学的成绩都比丙同学好。一般情况,设有一个三元向量的集合,若其中有向量P=(p1, p2, p3), Q=(q1, q2, q3), 规定P≦Q 当且仅当 p1≦q1, p2≦q2, p3≦q3 。其中一个向量称为是一个极小元素,当且仅当它只 ≦ 它自己。例如如下三个三元向量组成了向量组(80,90,100),(90,80,70),(60,70,60),其中只有一个最小元素,是(60,70,60)。请编写程序,输入n个三元向量,输出其中最小元素的数目。

 

改一下:因为并不晓得他定义的什么是最小元素,那暂且就写个初始版本吧,找最小值。

等我沟通好了再修改处理。

/*****************解决思路************************/

既然是多元且大于2,那么就不能采用pair了,用tuple简单好解决

至于找出 ,我们不要重复造轮子,用STL的min_element就完全可以解决了。

 

实现代码如下:

/**
*
*Copyright : 小鸭
*Email:lxyjiang@gmail.com
*Blog address:http://www.cnblogs.com/xiaoyajiang/
*First edit time:2017/01/09 17:20
*
***************************************************/

#include <iostream>
#include <vector>
#include <tuple>
#include <utility>
#include <algorithm>
using std::cout;
using std::endl;
using std::vector;
using std::tuple;
using std::make_tuple;
using std::get;

int main()
{
vector<tuple<int, int, int>> vec { make_tuple(80, 90, 100),
make_tuple(90, 80, 70),
make_tuple(60, 70, 60) };

auto m = *min_element(vec.begin(), vec.end());
cout << "minimal vector is " << "("
<< get<0>(m) << ", "
<< get<1>(m) << ", "
<< get<2>(m)
<< ")"
<< endl;
return 0;
}

 

Tuple初探

原文:http://www.cnblogs.com/xiaoyajiang/p/6266202.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!