boost pdate是不可变的,所以如何在循环中使用它?我需要与最后处理的日期进行比较:
date last(neg_infin);
for (int i = 0; i < tasks.size(); i++) {
if (tasks[i]->getTime().date() > last) {
cout << ":::" << tasks[i]->getTime().date() << ":::" << endl;
}
cout << "[" << i << "]" << '\t';
tasks[i]->print();
// i need to change the last date here
cout << endl;
}
即。如果当前时间的日期部分晚于上一个,则打印日期,否则只打印时间
答案 0 :(得分:0)
好吧,既然你已经将索引处理成tasks
,而是存储“最后”索引,而不是日期。
int lastIndex = 0;
for (int i = 1; i < tasks.size(); i++) {
if (tasks[i]->getTime().date() > tasks[lastIndex]->getTime.date()) {
cout << ":::" << tasks[i]->getTime().date() << ":::" << endl;
}
cout << "[" << i << "]" << '\t';
tasks[i]->print();
lastIndex = i;
cout << endl;
}
答案 1 :(得分:0)
为什么需要显式的最后一个元素?这项工作也不合适吗?
if (i == 0 || tasks[i]->getTime().date() > tasks[i-1]->getTime.date()) {