cig*_*ien 6 c++ range-v3 c++20 std-ranges
对于以下代码:
#include <iostream>
#include <string>
#include <ranges>
int main()
{
std::string s = " text ";
auto sv = std::ranges::views::split(s, ' ');
std::cout << std::ranges::distance(sv.begin(), sv.end());
}
Run Code Online (Sandbox Code Playgroud)
输出为 2。输出范围中不存在最后一个分隔符之后的空子范围。
这似乎不一致,因为N+1如果N输入范围中出现分隔符,我希望输出范围中有子范围。为什么不是这样?
请注意 range-v3 做的完全一样,所以我确定这是故意的,但我想知道为什么。