std::forward_list::reverse
#include <forward_list>
void reverse() noexcept;
Đảo ngược thứ tự các phần tử trong forward_list.
Tham số
Không có tham số
Giá trị trả về
Không có giá trị trả về
Đặc điểm
- Đảo ngược tại chỗ:
reverse()
đảo ngược thứ tự các phần tử ngay trong forward_list hiện tại, không tạo ra một forward_list mới. - noexcept:
reverse()
được đánh dấu lànoexcept
, nghĩa là nó được đảm bảo không ném ra ngoại lệ nào. - Làm thay đổi iterator:
reverse()
có thể làm thay đổi (invalidate) các iterator đang trỏ đến các phần tử trong forward_list - Không sử dụng thêm bộ nhớ:
reverse()
chỉ sử dụng một lượng bộ nhớ hằng số (O(1)
) cho các biến tạm thời, không cần cấp phát thêm bộ nhớ để lưu trữ các phần tử. - Độ phức tạp: Độ phức tạp của
reverse()
làO(n)
, với n là số phần tử trong forward_list.
Ví dụ
#include <iostream>
#include <forward_list>
int main() {
std::forward_list<int> mylist = {1, 2, 3, 4, 5};
mylist.reverse(); // Đảo ngược thứ tự các phần tử
std::cout << "mylist after reverse():";
for (int x : mylist) std::cout << ' ' << x; // Output: mylist after reverse(): 5 4 3 2 1
std::cout << '\n';
return 0;
}
Các hàm liên quan
sort | Sắp xếp các phần tử trong forward_list theo thứ tự tăng dần hoặc theo một tiêu chí so sánh tùy chỉnh |
splice_after | Chuyển (transfer) các phần tử từ một forward_list khác hoặc từ một phạm vi trong forward_list khác sang forward_list hiện tại |
swap | Hoán đổi nội dung của hai forward_list với nhau |