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

std::list::size

#include <list>

size_type size() const noexcept;

Trả về số lượng phần tử hiện có trong std::list.

Tham số

Không có tham số

Giá trị trả về

  • Trả về một giá trị kiểu size_type, thường là std::size_t, là một kiểu số nguyên không dấu, đại diện cho số lượng phần tử hiện có trong std::list.

Đặc điểm

  1. noexcept: size() được đánh dấu là noexcept, nghĩa là nó được đảm bảo không ném ra ngoại lệ nào.
  2. const: size() là một hàm const, nghĩa là nó không thay đổi trạng thái của std::list.
  3. Phân biệt với capacity() (dành cho std::vector): std::list không có hàm capacity(). capacity() (trong std::vector) liên quan đến dung lượng bộ nhớ được cấp phát, còn size() luôn trả về số lượng phần tử thực tế. std::list quản lý bộ nhớ theo cách khác std::vector.
  4. Độ phức tạp: O(1) - thời gian hằng số. Việc lấy kích thước của std::list rất nhanh chóng, không phụ thuộc vào số lượng phần tử.

Ví dụ

#include <iostream>
#include <list>

int main() {
std::list<int> mylist = {10, 20, 30, 40, 50};

std::cout << "mylist.size(): " << mylist.size() << '\n'; // Output: mylist.size(): 5

// In ra các phần tử nếu list không rỗng
if (mylist.size() > 0) {
std::cout << "mylist elements:";
for (int i = 0; i < mylist.size(); ++i) {
// Cần sử dụng iterator để duyệt list vì list không hỗ trợ truy cập phần tử thông qua chỉ số
auto it = mylist.begin();
std::advance(it, i);
std::cout << ' ' << *it;
}
std::cout << '\n';
}

return 0;
}

Các hàm liên quan

emptyKiểm tra xem std::list có rỗng hay không, tức là không chứa bất kỳ phần tử nào
resizeThay đổi kích thước của std::list
max_sizeTrả về số lượng phần tử tối đa mà std::list có thể chứa