【发布时间】:2017-02-25 18:55:28
【问题描述】:
我有一个这样的数组:
string dates [5] = { "15-JAN-17", "15-JAN-17", "17-JAN-17",
"04-FEB-17", "04-FEB-17" };
string startDate = "15-JAN-17";
string endDate = "04-FEB-17";
有没有办法在开始日期和结束日期之间获取数据?我需要得到的是:
"15-JAN-17", "17-JAN-17", "04-FEB-17"
我计划使用 for 循环进行搜索,并将所有结果放入另一个名为 selectedDates 的数组中。我怎样才能得到这个结果,而且由于会有重复的日期,我怎样才能确保程序从第一个结果开始,并在 startDate 和 endDate 提供的最后一个结果结束?
编辑:我还应该提到,即使数组变大,日期也将始终进行排序。
【问题讨论】:
-
您的意思是获取数组的两个指针之间的数据,或者获取数组的两个对象之间的数据,这等于提到的字符串?
-
你的代码还能编译吗?
-
dates的类型真的是int[5]吗? -
我的意思是获取上述字符串之间的数据。但是,由于日期可能有重复,我需要获取第一个“15-JAN-17”和最后一个“04-FEB-17”之间的数据。哦,是的,我搞砸了,应该将数组更改为字符串 xD
-
如果数组是sorted,那么
std::lower_bound和std::upper_bound(以及对std::unique的调用)可能会对您有所帮助。