如何按照类中的某个属性值进行排序


5分钟改的一个模板,方便以后参考使用



#include <iostream>
#include<time.h>
using namespace std;


class card{

public:
	int getF(){return f;}
	int getS(){return s;}
	card(int n){ f = n; s = n*2;}
	void setF(int newf){f = newf;}
	void setS(int news){ s = news;}

private:

	int f;
	int s;
};


void Bubble(card *array, int n)
//bubble sort冒泡排序
{
	int permutation = 1;   //permutation 意为排序
	int k = n - 1, j;
	card tmp (0);
	while ((k >= 1) && (permutation == 1)){
		permutation = 0;
		for (j = 0; j < k; j++)
		{
			if (array[j].getF()>array[j + 1].getF())  //按照card类中的f属性来排序,小在前
			{
				tmp.setF(array[j].getF());// tmp = array[j];
				tmp.setS(array[j].getS());

				//array[j] = array[j + 1];
				array[j].setF(array[j+1].getF());
				array[j].setS(array[j+1].getF());
				//array[j + 1] = *tmp;
				array[j+1].setF(tmp.getF());
				array[j+1].setS(tmp.getS());

				permutation = 1;
			}
		}
		k = k - 1;
	}
}

int main() {

	card c[7]={1,2,34,23,5,6,7};
	Bubble(c,7);
	for(int i=0;i<7;i++){
		cout<<c[i].getF()<<" ";
	}
	cout<<endl;
	for(int i=0;i<7;i++){
			cout<<c[i].getS()<<" ";
	}

	return 0;
}


输出:

1 2 5 6 7 23 34 
2 4 5 6 7 23 68 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值