【发布时间】:2021-08-05 13:04:49
【问题描述】:
我知道他们应该做什么,但我不知道如何检查,例如,当 int 数据被赋予函数时,它们是否满足 Pred pred。
例如,我在一个单链表中有这个函数:
Node<T>* extract(Node<T>*& head, Pred pred)
使用这些值来检查 head->data:
extract(listAi,[](int n) {return n % 2 == 0; });
【问题讨论】:
-
extract实际上应该 做什么 是什么?返回一个列表,其中包含对谓词回答正确的所有节点的副本?或者实际上 remove 匹配谓词的节点并从列表中返回已删除的节点?它有所作为。无论如何,节点类型中的某处是值成员。该值被传递给谓词,之后采取的行动取决于从 say-same 返回的结果。 -
@WhozCraig 该函数应将应用于成员数据的谓词返回 true 的所有节点提取到单独的列表中。函数 extract 返回包含谓词为 true 的节点的列表的头部,并且在从 extract 返回后,head 指向不满足谓词的节点列表。所以应该是这样的:pred(data)?
-
同样,pred 对象的参数将是
Node<T>中的重要数据member。例如。在提取中执行的列表枚举中的当前节点。 -
@WhozCraig 好的,我明白了。非常感谢您的帮助!