std::reverse
#include <algorithm>
template <class BidirectionalIterator>
void reverse (BidirectionalIterator first, BidirectionalIterator last);
Đảo ngược thứ tự các phần tử trong một phạm vi (range) được chỉ định.
Tham số
first
- Bidirectional Iterator trỏ đến phần tử đầu tiên trong phạm vi cần đảo ngược.
last
- Bidirectional Iterator trỏ đến phần tử ngay sau phần tử cuối cùng trong phạm vi cần đảo ngược. Phạm vi là
[first, last)
.
Giá trị trả về
Không có giá trị trả về
Đặc điểm
- Phạm vi
[first, last)
là "nửa mở", không bao gồm phần tửlast
. reverse()
thay đổi trực tiếp thứ tự các phần tử trong phạm vi gốc, không tạo ra một phạm vi mới.reverse()
yêu cầu Bidirectional Iterator, cho phép di chuyển theo cả hai hướng (tiến và lùi).- Các kiểu dữ liệu của các phần tử cần hỗ trợ phép
swap()
(hoán đổi giá trị). reverse()
thường được sử dụng để:- Đảo ngược thứ tự các phần tử trong một container (ví dụ: đảo ngược một vector, một string, một list).
- Thay đổi thứ tự các phần tử trong một mảng.
- Xử lý dữ liệu theo thứ tự ngược lại.
Phân biệt với reverse_copy()
reverse()
đảo ngược thứ tự các phần tử tại chỗ (trong phạm vi gốc).reverse_copy()
tạo ra một bản sao của phạm vi với thứ tự các phần tử được đảo ngược, giữ nguyên phạm vi gốc.
Ví dụ
#include <iostream>
#include <vector>
#include <algorithm>
#include <string>
int main() {
std::vector<int> numbers = {1, 2, 3, 4, 5};
// Đảo ngược thứ tự các phần tử trong numbers
std::reverse(numbers.begin(), numbers.end());
std::cout << "numbers after reverse: ";
for (int x : numbers) {
std::cout << x << " ";
}
std::cout << std::endl;
std::string str = "hello";
// Đảo ngược chuỗi str
std::reverse(str.begin(), str.end());
std::cout << "str after reverse: " << str << std::endl;
return 0;
}
Các hàm liên quan
reverse_copy | Sao chép các phần tử từ một phạm vi (range) nguồn sang một phạm vi đích khác theo thứ tự đảo ngược |
rotate | Xoay (rotate) các phần tử trong một phạm vi (range) sang trái |
random_shuffle | Xáo trộn (shuffle) ngẫu nhiên các phần tử trong một phạm vi (range) được chỉ định |
swap | Hoán đổi giá trị của hai đối tượng |