因此示例中:基本数据类型swap(a, b)可以用iter_swap(&a,&b)代替;基本序列容器swap(vl, v2)可以用iter_swap(&vl,&v2)代替,当然从功能上说也可用swap_ranges(vl. begin(),vl.end(),v2.begin())代替;但是对数组来说只能用swap_ranges,如示例那样。因此可以总结出:对于基本数据类型可用swap或iter_swap,...
swap():交换两个元素。 swap_ranges():交换指定范围的元素。 iter_swap():交换由迭代器所指的两个元素。 swap函数模板的行为等同于: AI检测代码解析 template <class T> void swap (T& a, T& b) { T c(std::move(a)); a=std::move(b); b=std::move(c); } template <class T, size_t N...
std::iter_swap 定义于头文件<algorithm> template<classForwardIt1,classForwardIt2> voiditer_swap(ForwardIt1 a, ForwardIt2 b); (C++20 前) template<classForwardIt1,classForwardIt2> constexprvoiditer_swap(ForwardIt1 a, ForwardIt2 b);
// iter_swap example #include <iostream> // std::cout #include <algorithm> // std::iter_swap #include <vector> // std::vector int main () { int myints[]={10,20,30,40,50 }; // myints: 10 20 30 40 50 std::vector<int> myvector (4,99); // myvector: 99 99 99 99 ...
cpp swap_ranges(vl.begin(), vl.end(), v2.begin()); // 交换vl和v2的元素 相比之下,iter_swap()函数模板适用于直接交换两个变量的地址,例如:cpp iter_swap(&a, &b); // 等同于a = b, b = a,但使用的是迭代器地址 总结来说,对于基本数据类型,可以使用swap()或iter_swap()...
iter_swap原型: std::iter_swap template <class ForwardIterator1, class ForwardIterator2> void iter_swap (ForwardIterator1 a, ForwardIterator2 b); 交换两个迭代器指向的元素的值。 该函数调用swap来交换两个值。 其行为类似与: 1 2 3 4
iter_swap iter_swap ( deq1.begin ( ) , --deq1.end ( ) ); cout << "The deque of CInts with first & last elements swapped is:\n deq1 = ("; for ( d1_Iter = deq1.begin( ); d1_Iter != --deq1.end( ); d1_Iter++ ) cout << " " << *d1_Iter << ","; d1_...
iter_swap lexicographical_compare lower_bound make_checked_array_iterator make_heap max max_element merge min min_element minmax_element minmax mismatch <alg> move move_backward next_permutation nth_element none_of partial_sort partial_sort_copy ...
template<typename Tp>inlinevoidswap(Tp& a, Tp& b){ Tp tmp =std::move(a); a =std::move(b); b =std::move(tmp); } 也就是说,通过一个临时变量tmp,交换a、b的值。 iter_swap iter_swap用于交换2个迭代器所指元素。g++源码如下
template<class ForwardIterator1, class ForwardIterator2> void iter_swap( ForwardIterator1 _Left, ForwardIterator2 _Right ); 参数说明: _Left,_Right指向要交换的两个迭代器 程序示例: 在泛型编程里面,iterator被称为“泛型指针”,因此我们可以通过iterator作为指针来交换两个数组的元素,为了展示swap和iter_swap...