N只小白鼠(1 < N < 100),每只鼠头上戴着一顶有颜色的帽子。现在称出每只白鼠的重量,要求按照白鼠重量从大到小的顺序输出它们头上帽子的颜色。帽子的颜色用“red”,“blue”等字符串来表示。不同的小白鼠可以戴相同颜色的帽子。白鼠的重量用整数表示。
输入第一行为一个整数N,表示小白鼠的数目。下面有N行,每行是一只白鼠的信息。第一个为不大于1000的正整数,表示白鼠的重量,;第二个为字符串,表示白鼠的帽子颜色,字符串长度不超过10个字符。注意:白鼠的重量各不相同。
输出
按照白鼠的重量从大到小的顺序输出白鼠的帽子颜色。
解答:template
struct plus : public binary_function<T, T, T> {
T operator()(const T& x, const T& y) const { return x + y; } };
template
struct minus : public binary_function<T, T, T> {
T operator()(const T& x, const T& y) const { return x - y; } };
template
struct multiplies : public binary_function<T, T , T> {
T operator()(const T& x, const T& y) const { return x * y; } };
template
struct divides : public binary_function<T ,T, T> {
T operator()(const T& x, const T& y) const { return x / y; } };
template
struct modulus : public binary_function<T, T, T> {
T operator()(const T& x, const T& y) const { return x % y; } };
template
struct equal_to : public binary_function<T, T, bool> {
bool operator()(const T& x, const T& y) const { return x == y; } };
template
struct not_equal_to : public binary_function<T, T,bool> {
bool operator()(const T& x, const T& y) const { return x != y; } };
template
struct greater : public binary_function<T, T, bool> {
bool operator()(const T& x, const T& y) const { return x > y; } };
template
struct less : public binary_function<T, T, bool> {
bool operator()(const T& x, const T& y) const { return x < y; } };
template
struct greater_equal : public binary_function<T, T, bool> {
bool operator()(const T& x, const T& y) const { return x >= y; }};
template
struct less_equal : public binary_function<T, T, bool> {
bool operator()(const T& x, const T& y) const { return x <= y; }};
template
struct logical_and : public binary_function<T, T, bool>{
bool operator()(const T& x, const T& y) const
{ return x && y; }
};
template
struct logical_or : public binary_function<T, T, bool>
{
bool operator()(const T& x, const T& y) const
{ return x || y; }
};
扩展::当容器中保存的是用户自定义类型数据时,有的数据类型结构简单,占用的空间小;而有的数据类型结构复杂,需要的内存空间大。有的应用程序,需要频繁的进行数据元素的插入、删除操作,这就对应这频繁的内存空间的申请、释放工作。大家都知道频繁的内存操作,会产生严重的性能问题。为了解决这些问题,stlport提供了两个空间配置器。一个是“简单空间配置器”,只是对c运行时库中malloc/free函数进行了简单的封装,唯一不同的是,提供类似new异常处理机制。另一个是“基于内存池的空间配置器”,容器每次申请内存的时候,空间配置器会基于一定的策略,向os申请j较大的内存,避免每次内存申请都向os申请。