怎样才能避免写作smth.begin(), smth.end()
一直在使用迭代器?
例如,如果您必须使用std::reverse
– 它看起来像这样:
std::reverse(mystr.begin(), mystr.end());
但我想我在某个地方看到人们在做同样的事情,如下所示:
std::<something>::reverse(mystr);
您正在寻找std::ranges::reverse()来自<algorithm>
header.
因此,缺少的命名空间是ranges
,这需要一个支持的编译器c++20或更高。
#include <algorithm>
std::ranges::reverse(mystr);
还可以查看其他范围算法<algorithm>,以及来自的适配器<ranges>,这可能也很有趣。
例如,如果mystr
只需要以相反的顺序查看,更合适的是std::ranges::views::reverse/ std::ranges::reverse_view适配器。
#include <ranges> // std::ranges::views::reverse
auto rev_v1 = std::ranges::views::reverse(mystr);
// or
std::ranges::reverse_view rev_v1{ mystr };
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)