Chuyển tới nội dung chính

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

  1. Đả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.
  2. 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.
  3. 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
  4. 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ử.
  5. Độ phức tạp: Độ phức tạp của reverse()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

sortSắ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_afterChuyể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
swapHoán đổi nội dung của hai forward_list với nhau