小编use*_*815的帖子

STL地图排序

更新:我遵循了John的指导并修改了他的代码,通过创建比较器函数解决了我的问题,并将其插入到STL map中的Compare参数中.由于我的字符串日期严格采用所示格式,因此使用substr会很好.我的输出和代码如下,供您参考.

Date            Total Sales
01JAN1900       $4
20JAN1902       $40
18NOV1912       $2500
19NOV1912       $2500
19OCT1923       $25
01JAN1991       $22
15NOV1991       $300
Grand Total:    $5391


 struct CompareDates 
:
  public std::binary_function <bool, std::string, std::string>
{
  bool operator() (const std::string& lhs, const std::string& rhs)
  {


     if(lhs.substr(5,4) < rhs.substr(5,4))
     {
         return true;

     }
     else if (lhs.substr(5,4) == rhs.substr(5,4) && lhs.substr(2,3) < rhs.substr(2,3))
     {
         return true;
     }
     else if (lhs.substr(5,4) == rhs.substr(5,4) && lhs.substr(2,3) == rhs.substr(2,3) && lhs.substr(0,2) < rhs.substr(0,2))
     {
         return true;

     }
     else
     {
         return …
Run Code Online (Sandbox Code Playgroud)

c++ sorting stl map

6
推荐指数
2
解决办法
2万
查看次数

标签 统计

c++ ×1

map ×1

sorting ×1

stl ×1