笔试编程常用--防忘记

本文介绍了使用C++实现二维数组的按列排序方法,并通过一个示例代码展示了具体的实现过程。此外,还讲解了如何利用map进行数据统计,包括读取输入、更新map以及遍历map等内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 二维数组按列排序

bool cmp(vector<int> a, vector<int> b)
{
	if (a[0] != b[0]) return a[0] > b[0];    //从大到小排序
	if (a[1] != b[1]) return a[1] > b[1];
	if (a[2] != b[2]) return a[2] > b[2];
}

int main()
{
	int n;
	cin >> n;
	int ddhao, left, right;
	vector< vector <int> > number(n, vector<int>(3, 0));
	for (int i = 0; i < n; ++i)
	{
		cin >> ddhao >> left >> right;
		number[i][0] = ddhao;
		number[i][1] = left;
		number[i][2] = right;
	}
	//vector<vector<int>> number = { { 1,4,3 },{ 1,4,7 } ,{ 1,3,5 } ,{ 2,9,4 } ,{ 2,5,8 } ,{ 3,9,6 } };
	sort(number.begin(), number.end(), cmp);

	for (int i = 0; i < number.size(); ++i)
	{
		for (int j = 0; j < number[0].size(); ++j)
			cout << number[i][j] << " ";
		cout << endl;
	}

	for (auto i : number)
		cout << i[0] << i[1] << i[2]<< endl;
	system("pause");
	return 0;
}

2. map操作

	int n, x;
	cin >> n;
	map<int, int> data;
	while (n--)
	{
		cin >> x;
		data[x]++;
	}
	int max_num = 0;
	for (auto it = data.begin(); it != data.end(); ++it)
	{
		if (data.count(it->first + 1))
			max_num = it->second + data[it->first + 1];
		max_num = max(it->second, max_num);
	}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值