std::swap_ranges是C++ STL庫的一種算法函數(shù),它可以將一個范圍內(nèi)的元素與另一個范圍內(nèi)的元素交換。以下是std::swap_ranges函數(shù)的使用方法。
template <class ForwardIterator1, class ForwardIterator2>
ForwardIterator2 swap_ranges(ForwardIterator1 first1, ForwardIterator1 last1,
ForwardIterator2 first2);
參數(shù)說明:
first1和last1:表示第一個范圍的起始位置和結(jié)束位置(不包括該位置)。
first2:表示第二個范圍的起始位置。
返回值:返回第二個范圍的結(jié)束位置。
下面是一個示例,演示如何使用std::swap_ranges函數(shù)將兩個數(shù)組中的元素交換:
#include <iostream>
#include <algorithm>
int main()
{
int arr1[] = {10, 20, 30, 40, 50};
int arr2[] = {60, 70, 80, 90, 100};
int n = sizeof(arr1) / sizeof(arr1[0]);
std::swap_ranges(arr1, arr1 + n, arr2); // 將arr1和arr2中的元素交換
for (int i = 0; i < n; ++i)
{
std::cout << arr1[i] << " ";
}
std::cout << std::endl;
for (int i = 0; i < n; ++i)
{
std::cout << arr2[i] << " ";
}
std::cout << std::endl;
return 0;
}
輸出結(jié)果:
60 70 80 90 100
10 20 30 40 50
在上面的例子中,我們使用std::swap_ranges函數(shù)將arr1和arr2中的元素進行了交換,其中,arr1和arr2的類型必須相同,并且它們的元素個數(shù)也必須相同。
需要注意的是,std::swap_ranges函數(shù)只適用于相同類型的容器或數(shù)組,并且元素個數(shù)相等。如果一個容器或數(shù)組比另一個容器或數(shù)組的元素個數(shù)少,那么會導(dǎo)致未定義的行為。