【发布时间】:2017-04-08 23:06:53
【问题描述】:
看到下面的代码返回真我很惊讶:
bool isSadPancake(char c) { return c == '-'; }
string pancakes = "+++";
bool isParitioned = is_partitioned(pancakes.begin(), pancakes.end(), isSadPancake);
我在网上看到的文档说is_partitioned 如果满足谓词的 [first, last) 范围内的所有元素都出现在所有不满足谓词的元素之前,则返回 true。在这种情况下,不会出现满足谓词的元素,因此我期望返回值为 false。这是预期的行为吗?在标准中的哪里可以找到更多详细信息?
【问题讨论】:
-
相关参考here.
-
您的想法中的逻辑错误是“没有满足谓词的元素出现”是不合逻辑的。这不相关;该算法不关心“满足谓词的元素是否出现”。
标签: c++ algorithm stl stl-algorithm