is_partitioned 没有元素满足谓词时的行为
is_partitioned behavior when no elements satisfy predicate
看到下面的代码我很惊讶return正确:
bool isSadPancake(char c) { return c == '-'; }
string pancakes = "+++";
bool isParitioned = is_partitioned(pancakes.begin(), pancakes.end(), isSadPancake);
我在网上看到的文档说 is_partitioned
return 如果满足谓词的 [first, last) 范围内的所有元素都出现则为真在所有没有的元素之前。在这种情况下,没有满足谓词的元素出现,因此我预计 return 值为 false。这是预期的行为吗?我可以在标准的哪个位置找到更多详细信息?
另一种理解方式是 所有 满足谓词的元素实际上确实出现在不满足谓词的元素之前。全部为零。
一个更好的思考方式是这样的:不 被分割的序列意味着什么?这意味着您应该能够首先找到不满足谓词的元素,然后找到满足谓词的元素。而且你在你的序列中找不到这样的反例。
如果你清楚地阅读了它说的文档
http://en.cppreference.com/w/cpp/algorithm/is_partitioned
Return值
如果范围 [first, last) 为空或被 p 分区,则为真。否则为假。
看到下面的代码我很惊讶return正确:
bool isSadPancake(char c) { return c == '-'; }
string pancakes = "+++";
bool isParitioned = is_partitioned(pancakes.begin(), pancakes.end(), isSadPancake);
我在网上看到的文档说 is_partitioned
return 如果满足谓词的 [first, last) 范围内的所有元素都出现则为真在所有没有的元素之前。在这种情况下,没有满足谓词的元素出现,因此我预计 return 值为 false。这是预期的行为吗?我可以在标准的哪个位置找到更多详细信息?
另一种理解方式是 所有 满足谓词的元素实际上确实出现在不满足谓词的元素之前。全部为零。
一个更好的思考方式是这样的:不 被分割的序列意味着什么?这意味着您应该能够首先找到不满足谓词的元素,然后找到满足谓词的元素。而且你在你的序列中找不到这样的反例。
如果你清楚地阅读了它说的文档 http://en.cppreference.com/w/cpp/algorithm/is_partitioned
Return值 如果范围 [first, last) 为空或被 p 分区,则为真。否则为假。