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

std::list::reverse

#include <list>

void reverse() noexcept;

Đảo ngược thứ tự các phần tử trong std::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 std::list hiện tại, không tạo ra một std::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 std::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 std::list.

Ví dụ

#include <iostream>
#include <list>

int main() {
std::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

spliceChuyển (transfer) các phần tử từ một std::list khác sang std::list hiện tại, tại một vị trí xác định
sortSắp xếp các phần tử trong std::list theo thứ tự tăng dần hoặc theo một tiêu chí so sánh tùy chỉnh
swapHoán đổi nội dung của hai std::list với nhau