std::swap()
swap() 是一個標準庫函數,它交換任意兩個對象的值 b/w。在 C11 中,它已移至 <utility> 標題下。下麵是 swap() 的語法細節。
用法:
void swap (T& a, T& b);
參數: T& a, T& b
哪些是要交換的對象
返回類型: void
- 它什麽都不返回。
用法:交換兩個對象的黑白值
例子:
1) 交換兩個 內置 數據類型
在下麵的例子中,我們看到如何使用 std::swap() 函數交換兩個整數。
#include <bits/stdc++.h>
using namespace std;
int main()
{
int a = 10, b = 20;
cout << "Before swapping:\n";
cout << "a:" << a << ", b:" << b << endl;
//swap now
swap(a, b);
cout << "After swapping:\n";
cout << "a:" << a << ", b:" << b << endl;
return 0;
}
輸出:
Before swapping: a:10, b:20 After swapping: a:20, b:10
2) 交換兩個用戶定義的對象
在下麵的例子中,我們看到如何使用 std::swap() 函數交換兩個用戶定義的對象。在這裏,我們定義了一個學生類,因為我們看到了 swap 如何在它們之間交換內容。
#include <bits/stdc++.h>
using namespace std;
class student {
public:
int roll;
string name;
int marks;
student()
{
roll = -1;
name = "";
marks = 0;
}
student(int r, string s, int m)
{
roll = r;
name = s;
marks = m;
}
};
void print(student t)
{
cout << "Roll:" << t.roll << endl;
cout << "Name:" << t.name << endl;
cout << "Marks:" << t.marks << endl;
}
int main()
{
student a(1, "Alice", 80);
student b(2, "Bob", 85);
cout << "Before swapping:\n";
cout << "Student a:\n";
print(a);
cout << "Student b:\n";
print(b);
//swap now
swap(a, b);
cout << "After swapping:\n";
cout << "Student a:\n";
print(a);
cout << "Student b:\n";
print(b);
return 0;
}
輸出:
Before swapping: Student a: Roll:1 Name:Alice Marks:80 Student b: Roll:2 Name:Bob Marks:85 After swapping: Student a: Roll:2 Name:Bob Marks:85 Student b: Roll:1 Name:Alice Marks:80
3)兩個向量(容器)之間的交換
在下麵的例子中,我們將看到如何交換兩個向量的內容。以同樣的方式,我們可以交換任何容器的 be/w 對象。
#include <bits/stdc++.h>
using namespace std;
void print(vector<int> a)
{
for (auto it:a) {
cout << it << " ";
}
cout << endl;
}
int main()
{
vector<int> a{ 10, 20, 30, 40 };
vector<int> b{ 1, 2, 3, 4, 5, 6, 7 };
cout << "Before swapping:\n";
cout << "Vector a:\n";
print(a);
cout << "Vector b:\n";
print(b);
//swap now
swap(a, b);
cout << "After swapping:\n";
cout << "Vector a:\n";
print(a);
cout << "Vector b:\n";
print(b);
return 0;
}
輸出:
Before swapping: Vector a: 10 20 30 40 Vector b: 1 2 3 4 5 6 7 After swapping: Vector a: 1 2 3 4 5 6 7 Vector b: 10 20 30 40
相關用法
- C++ std::swap_ranges用法及代碼示例
- C++ std::string::push_back()用法及代碼示例
- C++ std::string::insert()用法及代碼示例
- C++ std::string::data()用法及代碼示例
- C++ std::string::compare()用法及代碼示例
- C++ std::search用法及代碼示例
- C++ std::stof用法及代碼示例
- C++ std::string::append()用法及代碼示例
- C++ std::string::assign()用法及代碼示例
- C++ std::string::find_last_not_of用法及代碼示例
- C++ std::string::resize()用法及代碼示例
- C++ std::stable_partition用法及代碼示例
- C++ std::string::rfind用法及代碼示例
- C++ std::set_difference用法及代碼示例
- C++ std::strncmp()用法及代碼示例
- C++ std::sort()用法及代碼示例
- C++ std::stol()、std::stoll()用法及代碼示例
- C++ std::search_n用法及代碼示例
- C++ std::set_intersection用法及代碼示例
- C++ std::set_union用法及代碼示例
注:本文由純淨天空篩選整理自 std::swap() function with example in C++ STL。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。