📜  C++ STL-algorithm.swap()函数

📅  最后修改于: 2020-10-16 14:12:39             🧑  作者: Mango

C++ STL algorithm函数swap()

C++ STL algorithm.swap()函数交换或说互换引用下的两个容器的值。

句法

template void swap(T& a, T& b);

参数

答:这是第一个具有一定价值的容器。

b:这是另一个有价值的容器。

返回值

该函数仅交换两个容器的值,并且不返回任何内容。

例子1

#include  
#include 
#include    
int main () 
{
  int a=14, b=9;
  std::swap(a,b);
  std::vector sg (4,a), ss (6,b);      
  std::swap(sg,ss);                          
  std::cout << "sg contains:";
  for (std::vector::iterator ti=sg.begin(); ti!=sg.end(); ti++)
    std::cout << ' ' << *ti;
  std::cout << '\n';

  return 0;
}

输出:

sg contains: 14 14 14 14 14 14

例子2

#include 
using namespace std;
int main()
{
    int ss = 9;
    int sg = 14;
    cout << "Value of ss before swapping: " << ss << endl;
    cout << "Value of sg before swapping: " << sg << endl;
    swap(ss, sg);
    cout << "Value of ss after swapping: " << ss << endl;
    cout << "Value of sg after swapping: " << sg << endl;
    return 0;
}

输出:

Value of ss before swapping: 9
Value of sg before swapping: 14
Value of ss after swapping: 14
Value of sg after swapping: 9

复杂度

对于数组,该函数具有N个复杂度,因为交换操作是在每个元素上单独执行的。对于非数组,函数具有恒定的复杂度。

数据竞争

两个容器都经过修改

异常处理

如果任何容器元素抛出一个异常,该函数将引发异常。