区间的比较1 lexicographical_compare

#include <iostream>
#include <algorithm>
#include <list>
#include <vector>

using namespace std;

void printCollection(const list<int>& l)
{
	for (list<int>::const_iterator iter = l.begin(); iter != l.end(); ++iter)
		cout << *iter << ' ';
	cout << endl;
}

bool lessForCollection(const list<int>& list1, const list<int>& list2)
{
	return lexicographical_compare(list1.begin(), list1.end(), list2.begin(), list2.end());
}

int main()
{
	list<int> c1, c2, c3, c4;
	for (int i = 1; i <= 5; ++i)
		c1.push_back(i);
	c4 = c3 = c2 = c1;
	c1.push_back(7);
	c3.push_back(2);
	c3.push_back(0);
	c4.push_back(2);
	printCollection(c1);
	printCollection(c2);
	printCollection(c3);
	printCollection(c4);

	if (lexicographical_compare(c4.begin(), c4.end(), c1.begin(), c1.end())) // lexicographical_compare是比较两个区间的大小,
		cout << "c4区间的大小小于c1区间的大小," << endl;
	else
		cout << "c4区间的大小大于或等于c1区间的大小," << endl;
	cout << endl << endl << endl;

	vector<list<int>> cc;
	cc.push_back(c1);
	cc.push_back(c2);
	cc.push_back(c3);
	cc.push_back(c4);
	cc.push_back(c3);
	cc.push_back(c1);
	cc.push_back(c4);
	cc.push_back(c2);

	for_each(cc.begin(), cc.end(), printCollection);
	cout << endl;

	sort(cc.begin(), cc.end(), lessForCollection); //  sort 是排序,从小到大的排序,
	for_each(cc.begin(), cc.end(), printCollection);
	cout << endl;


	return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值