std::swap()
时间: 2024-05-05 15:14:38 浏览: 78
std::swap() 是一个C++ STL库中的标准库函数,它用于交换两个变量的值。此函数是使用模板实现的,并且可以处理多种类型的变量,如基本类型、自定义类型、STL容器等。在使用时,我们只需要引入<utility>头文件,并使用std::swap()函数即可。
例如,交换两个整数变量a和b的值,可以这样实现:
```
int a = 1, b = 2;
std::swap(a, b);
// 现在a的值为2,b的值为1
```
值得注意的是,std::swap()函数不会引起任何内存分配和释放,因此效率很高。
相关问题
#include <iostream> #include <vector> // 快速排序 int partition(std::vector<int>& arr, int low, int high) { int pivot = arr[high]; int i = low - 1; for (int j = low; j < high; j++) { if (arr[j] < pivot) { i++; std::swap(arr[i], arr[j]); } } std::swap(arr[i+1], arr[high]); return i + 1; } void quickSort(std::vector<int>& arr, int low, int high) { if (low < high) { int pivotIdx = partition(arr, low, high); quickSort(arr, low, pivotIdx - 1); quickSort(arr, pivotIdx + 1, high); } } // 数组倒序 void reverseArray(std::vector<int>& arr) { int start = 0; int end = arr.size() - 1; while (start < end) { std::swap(arr[start], arr[end]); start++; end--; } } int main() { std::vector<int> arr = {}; // 快速排序 quickSort(arr, 0, arr.size() - 1); std::cout << "快速排序后的数组:"; for (int num : arr) { std::cout << num << " "; } std::cout << std::endl; // 数组倒序 reverseArray(arr); std::cout << "数组倒序结果:"; for (int num : arr) { std::cout << num << " "; } std::cout << std::endl; return 0; }注释
这是一个包含快速排序和数组倒序功能的程序。它使用了两个函数:quickSort和reverseArray。
quickSort函数实现了快速排序算法。它接受一个整数向量arr,以及数组的低位索引和高位索引。算法的主要思想是选择一个基准元素(这里选择了最后一个元素),将数组分成两部分,小于基准元素的放在左边,大于基准元素的放在右边,然后递归地对左右两部分进行快速排序。
partition函数用于确定基准元素的最终位置。它接受一个整数向量arr,以及数组的低位索引和高位索引。在这个函数中,通过遍历数组并将小于基准元素的元素交换到左边,最终将基准元素放置在正确的位置上。
reverseArray函数用于将数组倒序。它接受一个整数向量arr,并使用两个指针start和end来交换元素,以实现数组的倒序。
在主函数中,程序首先定义了一个空的整数向量arr。然后,它调用quickSort函数对arr进行排序,并输出排序后的结果。接着,它调用reverseArray函数对arr进行倒序,并输出倒序后的结果。
最后,程序返回0表示正常运行结束。
如果你对这段代码有任何疑问,请随时提问。
#include <iostream> #include <vector> // 冒泡排序 void bubbleSort(std::vector<int>& arr) { int n = arr.size(); for (int i = 0; i < n - 1; i++) { for (int j = 0; j < n - i - 1; j++) { if (arr[j] > arr[j + 1]) { std::swap(arr[j], arr[j + 1]); } } } } // 数组倒序 void reverseArray(std::vector<int>& arr) { int start = 0; int end = arr.size() - 1; while (start < end) { std::swap(arr[start], arr[end]); start++; end--; } } int main() { std::vector<int> arr = { }; // 冒泡排序 bubbleSort(arr); std::cout << "冒泡排序后的数组:"; for (int num : arr) { std::cout << num << " "; } std::cout << std::endl; // 数组倒序 reverseArray(arr); std::cout << "数组倒序结果:"; for (int num : arr) { std::cout << num << " "; } std::cout << std::endl; return 0; }注释
这段代码是一个简单的冒泡排序和数组倒序的实现。首先定义了一个bubbleSort函数,用来对传入的数组进行冒泡排序。然后定义了一个reverseArray函数,用来将传入的数组倒序。在main函数中,先定义了一个空的vector数组arr,然后调用bubbleSort函数对其进行排序。接着使用cout打印出排序后的数组元素,然后调用reverseArray函数对数组进行倒序操作,并再次使用cout打印出倒序后的数组元素。最后返回0表示程序正常结束。
阅读全文
相关推荐
















