C++:简单计算器与排序

两个小程序

包含两个小程序,一个对数字进行计算的(也可以对其他可用类型),第二个是排序的.

C++.
image-2210

计算的小程序


// Example program
#include
#include
#include
using namespace std;

//加减乘除运算.

int main()
{
/*
template struct plus {
T operator() (const T& x, const T& y) const {return x+y;}
typedef T first_argument_type;
typedef T second_argument_type;
typedef T result_type;
};

例如:上面是plus的原型,可以看出其中重载了加法运算.(其他的类似)
更多可以参考:http://www.cplusplus.com/reference/functional/plus/ [应查看c++ 11的示例]
*/
plus age;
minus gre;
multiplies nums;
divides ds;
negate ne;
modulus modu;
///////////////////////////////
cout << "add:" << age(10,20) << endl; cout << "minus:" << gre(100,50) << endl; cout << "mulitplies:" << nums(50,100) << endl; cout << "divides:" << ds(100,2) << endl; cout << "negate:" << ne(100) << endl; cout << "modulus:" << modu(100,10) << endl; return 0; }

逆序排序

下面的程序其实使用了上面程序中的匿名negate对象(negate会倒置传入的值).

negate原型如下:


template struct negate {
T operator() (const T& x) const {return -x;}
typedef T argument_type;
typedef T result_type;
};
//更多可参考:http://www.cplusplus.com/reference/functional/negate/

程序如下:

// Example program
#include
#include
#include
#include
using namespace std;

//逆序排列vector中的元素

int main()
{
vector vec={5,20,70,6,100,658,50,3,1558,1,85217,0};
sort(vec.begin(),vec.end(),greater());
for_each(vec.begin(),vec.end(),[](const int &is){cout << is << " " ;}); cout << endl; return 0; }

发表评论

电子邮件地址不会被公开。 必填项已用*标注

*

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据