C++(23):ranges::find_last
C++20增加了ranges,对于容器的使用是一次比较大的改进,C++23为ranges增加了反向查找的工具find_last:#include algorithm #include cassert #include forward_list #include iomanip #include iostream #include string_view #include print int main() { namespace ranges = std::ranges; constexpr static auto v = {1, 2, 3, 1, 2, 3, 1, 2}; {//#1 constexpr auto i1 = ranges::find_last(v.begin(), v.end(), 3); constexpr auto i2 = ranges::find_last(v, 3); static_assert(ranges::distance(v.begin(), i1.begin()) == 5); static_assert(ranges::distance(v.begin(), i2.begin()) == 5); std::println("#1 {}", i1); std::println("#1 {}", i2); } {//#2 constexpr auto i1 = ranges::find_las