struct MyStruct
{
AnsiString Date;
TDate ToDate()const{return StrToDate(Date);}
};
bool aa(const MyStruct &r,const MyStruct &t)
{
return r.ToDate() < t.ToDate();
}
//#include<iostream>
//#include<string>
//#include<deque>
#include<algorithm>
void __fastcall TMainForm::Sort1Click(TObject *Sender)
{
print->Clear();
deque<MyStruct> z;
MyStruct m;
DateSeparator = '/'; //设置日期分隔符
m.Date = "2010/06/11";
z.push_back(m);
m.Date = "2010/07/11";
z.push_back(m);
m.Date = "2010/05/2";
z.push_back(m);
m.Date = "2010/06/11";
z.push_back(m);
m.Date = "2011/06/11";
z.push_back(m);
deque<MyStruct>::iterator i = z.begin();
while(i != z.end())
{
print->Lines->Add(i[0].Date);
++i;
}
print->Lines->Add("-------------Sorted------------");
sort(z.begin(),z.end(),aa);
i = z.begin();
while(i != z.end())
{
print->Lines->Add(i[0].Date);
++i;
}
}
本文介绍了一个使用C++与标准模板库(STL)进行结构体排序的例子。通过定义包含日期字段的结构体,并实现比较函数,演示了如何利用deque容器存储这些结构体并使用sort函数进行排序。
406

被折叠的 条评论
为什么被折叠?



