Thư viện C ++ - <danh sách>
Giới thiệu
Danh sách là một vùng chứa trình tự được sử dụng phổ biến. Container là một đối tượng chứa dữ liệu cùng loại. Vùng chứa danh sách được triển khai dưới dạng danh sách được liên kết kép, do đó nó cung cấp quyền truy cập tuần tự hai chiều vào dữ liệu của nó.
Danh sách không cung cấp truy cập ngẫu nhiên nhanh, nó chỉ hỗ trợ truy cập tuần tự theo cả hai hướng. Danh sách cho phép thao tác chèn và xóa ở bất kỳ đâu trong một chuỗi trong thời gian không đổi.
Các phần tử của danh sách có thể nằm rải rác trong các phần bộ nhớ khác nhau. Vùng chứa lưu trữ thông tin cần thiết để cho phép truy cập tuần tự vào dữ liệu của nó. Danh sách có thể thu nhỏ hoặc mở rộng khi cần thiết từ cả hai đầu tại thời điểm chạy. Yêu cầu lưu trữ được đáp ứng tự động bởi trình phân bổ nội bộ.
Danh sách có kích thước bằng không cũng hợp lệ. Trong trường hợp đó list.begin () và list.end () trỏ đến cùng một vị trí. Nhưng hành vi gọi front () hoặc back () là không xác định.
Định nghĩa
Dưới đây là định nghĩa của std :: list từ tệp tiêu đề <list>
template < class T, class Alloc = allocator<T> > class list;
Thông số
T - Loại của phần tử được chứa.
T có thể được thay thế bằng bất kỳ kiểu dữ liệu nào khác bao gồm cả kiểu do người dùng xác định.
Alloc - Loại đối tượng cấp phát.
Theo mặc định, mẫu lớp bộ cấp phát được sử dụng, định nghĩa mô hình cấp phát bộ nhớ đơn giản nhất và không phụ thuộc vào giá trị.
Các loại thành viên
Các kiểu thành viên sau có thể được sử dụng làm tham số hoặc kiểu trả về bởi các hàm thành viên.
Sr.No. | Các loại thành viên | Định nghĩa |
---|---|---|
1 | value_type | T (Tham số đầu tiên của mẫu) |
2 | Cấp phát_type | Alloc (Tham số thứ hai của mẫu) |
3 | tài liệu tham khảo | value_type & |
4 | const_reference | const value_type & |
5 | con trỏ | value_type * |
6 | const_pointer | const value_type * |
7 | người lặp lại | một trình lặp truy cập ngẫu nhiên vào value_type |
số 8 | const_iterator | một trình lặp truy cập ngẫu nhiên đến const value_type |
9 | reverse_iterator | std :: reverse_iterator <iterator> |
10 | const_reverse_iterator | std :: reverse_iterator <const_iterator> |
11 | size_type | size_t |
12 | chênh_chung | ptrdiff_t |
Các hàm từ <list>
Dưới đây là danh sách tất cả các phương thức từ tiêu đề <list>.
Người xây dựng
Sr.No. | Phương pháp & Mô tả |
---|---|
1 | list :: list
default constructor Tạo một danh sách trống không có phần tử nào. |
2 | list :: list fill constructor
Tạo một danh sách mới với n phần tử và gán val cho mỗi phần tử của danh sách. |
3 | list :: list fill constructor
Tạo một danh sách mới với n phần tử và gán giá trị 0 cho mỗi phần tử của danh sách. |
4 | danh sách :: phương thức tạo phạm vi danh sách
Tạo một danh sách có nhiều phần tử trong phạm vi từ đầu đến cuối . |
5 | list :: list copy constructor
Tạo một danh sách với bản sao của từng phần tử có trong danh sách hiện có. |
6 | list :: list move constructor
Xây dựng một danh sách với nội dung của các ngữ nghĩa di chuyển khác. |
7 | list :: list constructor danh sách khởi tạo Xây dựng một danh sách với nội dung của các ngữ nghĩa di chuyển khác. |
Kẻ hủy diệt
Sr.No. | Phương pháp & Mô tả |
---|---|
1 | danh sách :: ~ danh sách
Hủy đối tượng danh sách bằng cách phân bổ bộ nhớ của nó. |
Chức năng thành viên
Sr.No. | Phương pháp & Mô tả |
---|---|
1 | danh sách :: gán phiên bản phạm vi Gán giá trị mới cho danh sách bằng cách thay thế giá trị cũ. |
2 | danh sách :: gán phiên bản điền Gán các giá trị mới cho danh sách bằng cách thay thế các giá trị cũ. |
3 | list :: gán phiên bản danh sách trình khởi tạo Gán các giá trị mới cho danh sách bằng cách thay thế các giá trị cũ. |
4 | danh sách :: trở lại
Trả về một tham chiếu đến phần tử cuối cùng của danh sách. |
5 | danh sách :: bắt đầu
Trả về một trình lặp truy cập ngẫu nhiên trỏ đến phần tử đầu tiên của danh sách. |
6 | danh sách :: cbegin
Trả về một trình lặp truy cập ngẫu nhiên không đổi trỏ đến đầu danh sách. |
7 | danh sách :: cend
Trả về một trình lặp truy cập ngẫu nhiên không đổi trỏ đến cuối danh sách. |
số 8 | danh sách :: rõ ràng
Hủy danh sách bằng cách xóa tất cả các phần tử khỏi danh sách và đặt kích thước của danh sách thành 0. |
9 | danh sách :: crbegin
Trả về một trình lặp đảo ngược hằng số trỏ đến phần tử cuối cùng của danh sách. |
10 | danh sách :: crend
Trả về một biến lặp ngược liên tục trỏ đến phần tử lý thuyết đứng trước phần tử đầu tiên trong danh sách. |
11 | danh sách :: emplace
Mở rộng danh sách bằng cách chèn phần tử mới vào một vị trí nhất định. |
12 | danh sách :: emplace_back
Chèn phần tử mới vào cuối danh sách và tăng kích thước danh sách lên từng phần tử. |
13 | list :: emplace_front
Chèn phần tử mới vào đầu danh sách và tăng kích thước danh sách lên từng phần tử. |
14 | danh sách :: trống
Kiểm tra xem danh sách có trống hay không. |
15 | danh sách :: kết thúc
Trả về một trình lặp truy cập ngẫu nhiên trỏ đến phần tử cuối cùng của danh sách. |
16 | danh sách :: xóa phiên bản vị trí Loại bỏ một phần tử khỏi danh sách. |
17 | danh sách :: xóa phiên bản phạm vi Xóa phạm vi phần tử khỏi danh sách. |
18 | danh sách :: phía trước
Trả về một tham chiếu đến phần tử đầu tiên của danh sách. |
19 | danh sách :: get_allocator
Trả về trình phân bổ được liên kết với danh sách |
20 | danh sách :: chèn phiên bản phần tử đơn Mở rộng trình lặp bằng cách chèn phần tử mới vào vị trí trong danh sách. |
21 | danh sách :: chèn phiên bản điền Mở rộng danh sách bằng cách chèn các phần tử mới vào vùng chứa. |
22 | danh sách :: chèn phiên bản phạm vi Mở rộng danh sách bằng cách chèn các phần tử mới vào vùng chứa. |
23 | danh sách :: chèn phiên bản di chuyển Mở rộng danh sách bằng cách chèn phần tử mới vào vùng chứa. |
24 | danh sách :: chèn phiên bản danh sách trình khởi tạo Mở rộng danh sách bằng cách chèn các phần tử mới vào vùng chứa |
25 | list :: max_size
Trả về số phần tử tối đa có thể được chứa trong danh sách. |
26 | danh sách :: hợp nhất
Hợp nhất hai danh sách đã sắp xếp thành một. |
27 | danh sách :: hợp nhất so sánh chức năng Hợp nhất hai danh sách đã sắp xếp thành một. |
28 | danh sách :: hợp nhất phiên bản di chuyển Hợp nhất hai danh sách đã sắp xếp thành một bằng cách sử dụng ngữ nghĩa di chuyển. |
29 | danh sách :: hợp nhất so sánh phiên bản di chuyển chức năng Hợp nhất hai danh sách đã sắp xếp thành một bằng cách sử dụng ngữ nghĩa di chuyển. |
30 | list :: operator = copy version Gán nội dung mới cho danh sách bằng cách thay thế những nội dung cũ. |
31 | list :: operator = move version Gán nội dung mới cho danh sách bằng cách thay thế những nội dung cũ. |
32 | list :: operator = phiên bản danh sách khởi tạo Gán nội dung mới cho danh sách bằng cách thay thế những nội dung cũ. |
33 | danh sách :: pop_back
Xóa phần tử cuối cùng khỏi danh sách. |
34 | list :: pop_front
Xóa phần tử đầu tiên khỏi danh sách. |
35 | danh sách :: push_back
Chèn phần tử mới vào cuối danh sách. |
36 | list :: push_back move version Chèn phần tử mới vào cuối danh sách. |
37 | list :: push_front
Chèn phần tử mới vào đầu danh sách. |
38 | list :: push_front move version Chèn phần tử mới vào đầu danh sách. |
39 | danh sách :: rbegin
Trả về một trình lặp ngược trỏ đến phần tử cuối cùng của danh sách. |
40 | danh sách :: loại bỏ
xóa (các) phần tử khỏi danh sách khớp với giá trị. |
41 | list :: remove_if
loại bỏ các phần tử khỏi danh sách đáp ứng điều kiện. |
42 | list :: rend
Trả về một trình lặp ngược trỏ đến phần cuối ngược lại của danh sách. |
43 | danh sách :: thay đổi kích thước
Thay đổi kích thước của danh sách. |
44 | danh sách :: thay đổi kích thước phiên bản giá trị Thay đổi kích thước của danh sách. |
45 | danh sách :: đảo ngược
Đảo ngược thứ tự của các phần tử có trong danh sách. |
46 | danh sách :: kích thước
Trả về số phần tử có trong danh sách. |
47 | danh sách :: sắp xếp
Sắp xếp các phần tử của danh sách. |
48 | danh sách :: chức năng so sánh sắp xếp Sắp xếp các phần tử của danh sách. |
49 | danh sách :: mối nối
Chuyển tất cả các phần tử từ danh sách sang * this. |
50 | list :: splice phần tử đơn Chuyển một phần tử được trỏ tới bởi trình lặp i từ danh sách x thành * this . |
51 | danh sách :: phiên bản di chuyển mối nối Chuyển tất cả các phần tử từ danh sách x sang * này bằng cách sử dụng ngữ nghĩa di chuyển. |
52 | danh sách :: phiên bản phạm vi mối nối
Chuyển các phần tử trong phạm vi đầu tiên đến cuối cùng từ x thành * this . |
53 | list :: splice phiên bản di chuyển phần tử đơn Chuyển phần tử được trỏ tới bởi trình lặp i từ danh sách x thành * này bằng cách sử dụng ngữ nghĩa di chuyển. |
54 | danh sách :: phạm vi mối nối và phiên bản di chuyển Chuyển các phần tử trong phạm vi đầu tiên đến cuối cùng từ x sang * này bằng cách sử dụng ngữ nghĩa di chuyển. |
55 | danh sách :: hoán đổi
Trao đổi nội dung của danh sách với nội dung của danh sách khác x . |
56 | danh sách :: duy nhất
Loại bỏ tất cả các phần tử trùng lặp liên tiếp khỏi danh sách. |
57 | danh sách :: duy nhất
Loại bỏ tất cả các phần tử trùng lặp liên tiếp khỏi danh sách. |
Các chức năng quá tải không phải thành viên
Sr.No. | Phương pháp & Mô tả |
---|---|
1 | toán tử ==
Kiểm tra xem hai danh sách có bằng nhau hay không. |
2 | toán tử! =
Kiểm tra xem hai danh sách có bằng nhau hay không. |
3 | toán tử <
Kiểm tra xem danh sách đầu tiên có ít hơn danh sách khác hay không. |
4 | toán tử <=
Kiểm tra xem danh sách đầu tiên có nhỏ hơn hoặc bằng danh sách khác hay không. |
5 | toán tử>
Kiểm tra xem danh sách đầu tiên có lớn hơn danh sách khác hay không. |
6 | toán tử> =
Kiểm tra xem danh sách đầu tiên có lớn hơn hoặc bằng danh sách khác hay không. |
7 | hoán đổi
Trao đổi nội dung của hai danh sách. |