#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;
}
区间的比较1 lexicographical_compare
最新推荐文章于 2021-07-11 17:03:18 发布