iter_swap(ranges::adjacent_view::iterator)

来自cppreference.com
< cpp‎ | ranges‎ | adjacent view‎ | iterator
 
 
范围库
范围访问
范围转换器
(C++23)
范围原语



悬垂迭代器处理
范围概念
视图

范围工厂
适配器
范围生成器
范围适配器对象
范围适配器闭包对象
辅助项
 
 
friend constexpr void iter_swap( const /*iterator*/& x, const /*iterator*/& y )

  noexcept( /*see below*/ )

    requires std::indirectly_swappable<ranges::iterator_t<Base>>;
(C++23 起)

交换两个底层迭代器数组 (以 current_ 表示) 指向的对象。

等价于:

for (std::size_t i{}; i != N; ++i)
{
    std::ranges::iter_swap(x.current_[i], y.current_[i]);
}

如果在交换前 x.current_ 中的迭代器都不等于 y.current_ 中的迭代器,则行为未定义。

此函数对通常无限定有限定查找不可见,而只能在 adjacent_view::iterator<Const> 为参数的关联类时由实参依赖查找找到。

参数

x, y - 迭代器

返回值

(无)

异常

noexcept 说明:  
noexcept(std::ranges::iter_swap(declval<ranges::iterator_t<Base>>(),
                                declval<ranges::iterator_t<Base>>()))

参阅

(C++20)
交换两个可解引用对象所引用的值
(定制点对象)
交换两个迭代器所指向的元素
(函数模板)