Thư viện C ++ - <deque>
Giới thiệu
Deque là từ viết tắt của Dhòa tan Ended Queue. Nó là một vùng chứa trình tự có thể thay đổi thời gian chạy kích thước của nó. Container là một đối tượng chứa dữ liệu cùng loại. Vùng chứa trình tự lưu trữ các phần tử theo trình tự tuyến tính.
Các phần tử của deque có thể nằm rải rác trong các phần khác nhau của bộ nhớ. Container lưu trữ thông tin cần thiết để cho phép truy cập trực tiếp vào bất kỳ phần tử nào trong thời gian không đổi. Không giống như vectơ, deque không được đảm bảo lưu trữ tất cả phần tử của nó tại các vị trí bộ nhớ liền kề. Do đó nó không cho phép truy cập trực tiếp vào dữ liệu bằng cách bù trừ con trỏ. Nhưng nó cho phép truy cập trực tiếp vào bất kỳ phần tử nào bằng toán tử chỉ số con [].
Deque có thể thu nhỏ hoặc mở rộng khi cần thiết từ cả hai đầu khi chạy. Yêu cầu lưu trữ được đáp ứng tự động bởi trình phân bổ nội bộ . Deque cung cấp chức năng tương tự như vectơ, nhưng cung cấp cách hiệu quả để chèn và xóa dữ liệu từ bất kỳ đầu nào.
Deques có kích thước bằng không cũng có giá trị. Trong trường hợp đó, deque.begin () và deque.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 :: deque từ tệp tiêu đề <deque>
template < class T, class Alloc = allocator<T> > class deque;
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ừ <deque>
Dưới đây là danh sách tất cả các phương thức từ tiêu đề <deque>.
Người xây dựng
Sr.No. | Phương pháp & Mô tả |
---|---|
1 | deque :: deque default constructor Xây dựng một deque rỗng với phần tử bằng không. |
2 | deque :: deque fill constructor tạo một deque mới với n phần tử và gán val cho mỗi phần tử của deque |
3 | deque :: deque range constructor Tạo một deque với nhiều phần tử trong phạm vi từ đầu tiên đến cuối cùng . |
4 | deque :: deque copy constructor Tạo một deque với bản sao của từng phần tử có trong vùng chứa hiện có. |
5 | deque :: deque move constructor Xây dựng một deque với nội dung của các ngữ nghĩa chuyển động khác. |
6 | deque :: deque khởi tạo danh sách khởi tạo Tạo một deque từ danh sách khởi tạo. |
Kẻ hủy diệt
Sr.No. | Phương pháp & Mô tả |
---|---|
1 | deque :: ~ deque Phá hủy đối tượng deque 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 | deque :: gán phiên bản phạm vi Gán giá trị mới cho các phần tử deque bằng cách thay thế các giá trị cũ. |
2 | deque :: gán phiên bản điền Gán giá trị mới cho các phần tử deque bằng cách thay thế các giá trị cũ. |
3 | deque :: gán phiên bản danh sách trình khởi tạo Gán giá trị mới cho các phần tử deque bằng cách thay thế các giá trị cũ. |
4 | deque :: tại Trả về tham chiếu đến phần tử có tại vị trí n trong deque. |
5 | deque :: trở lại Trả về một tham chiếu đến phần tử cuối cùng của deque. |
6 | deque :: begin 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 deque. |
7 | deque :: cbegin Trả về một trình lặp truy cập ngẫu nhiên không đổi trỏ đến đầu deque. |
số 8 | deque :: cend Trả về một trình lặp truy cập ngẫu nhiên không đổi trỏ đến đầu deque. |
9 | deque :: clear Phá hủy deque bằng cách xóa tất cả các phần tử khỏi deque và đặt kích thước của deque bằng 0. |
10 | deque :: crbegin Trả về một trình lặp đảo ngược liên tục trỏ đến đầu trình đảo ngược của vùng chứa. |
11 | deque :: crend Trả về một trình lặp ngược liên tục trỏ đến điểm cuối ngược của deque. |
12 | deque :: emplace Mở rộng vùng chứa bằng cách chèn phần tử mới vào vị trí . |
13 | deque :: emplace_back Chèn phần tử mới vào cuối deque. |
14 | deque :: emplace_front Chèn phần tử mới vào đầu deque. |
15 | deque :: trống Kiểm tra xem deque có rỗng hay không. |
16 | deque :: end Trả về một trình vòng lặp trỏ đến phần tử quá khứ-cuối trong vùng chứa deque. |
17 | deque :: xóa phiên bản vị trí Loại bỏ một phần tử khỏi deque. |
18 | deque :: xóa phiên bản phạm vi Loại bỏ một phần tử khỏi deque. |
19 | deque :: phía trước Trả về một tham chiếu đến phần tử đầu tiên của deque |
20 | deque :: get_allocator Trả về một bộ cấp phát được liên kết với deque |
21 | deque :: chèn phiên bản phần tử đơn Mở rộng vùng chứa bằng cách chèn phần tử mới vào vị trí. |
22 | deque :: chèn phiên bản điền Mở rộng vùng chứa bằng cách chèn phần tử mới vào vùng chứa. |
23 | deque :: insert range version Mở rộng vùng chứa bằng cách chèn phần tử mới vào vùng chứa. |
24 | deque :: insert move version Mở rộng vùng chứa bằng cách chèn phần tử mới vào vùng chứa. |
25 | deque :: chèn phiên bản danh sách trình khởi tạo Mở rộng vùng chứa bằng cách chèn phần tử mới vào vùng chứa. |
26 | deque :: max_size Trả về số phần tử tối đa có thể được giữ bởi deque. |
27 | deque :: operator = copy version Gán nội dung mới cho deque bằng cách thay thế những nội dung cũ và sửa đổi kích thước nếu cần. |
28 | deque :: operator = move version Gán nội dung mới cho deque bằng cách thay thế những nội dung cũ và sửa đổi kích thước nếu cần. |
29 | deque :: operator = phiên bản danh sách khởi tạo Gán nội dung mới cho deque bằng cách thay thế những nội dung cũ và sửa đổi kích thước nếu cần. |
30 | deque :: operator [] Trả về một tham chiếu đến phần tử có tại vị trí n . |
31 | deque :: pop_back Loại bỏ phần tử cuối cùng khỏi deque và giảm kích thước của deque xuống một phần tử. |
32 | deque :: pop_front Loại bỏ phần tử đầu tiên khỏi deque và giảm kích thước của deque xuống một phần tử. |
33 | deque :: push_back Chèn phần tử mới vào cuối deque và tăng kích thước của deque lên một. |
34 | deque :: push_back move version Chèn phần tử mới vào cuối deque và tăng kích thước của deque lên một. |
35 | deque :: push_front Chèn phần tử mới vào phía trước của deque và tăng kích thước của deque lên một. |
36 | deque :: push_front di chuyển phiên bản Chèn phần tử mới vào phía trước của deque và tăng kích thước của deque lên một. |
37 | deque :: rbegin Trả về một trình lặp ngược trỏ đến phần tử cuối cùng của deque. |
38 | deque :: rend Trả về một trình lặp ngược trỏ đến điểm cuối ngược của deque. |
39 | deque :: thay đổi kích thước Thay đổi kích thước của deque. |
40 | deque :: thay đổi kích thước phiên bản giá trị Thay đổi kích thước của deque. |
41 | deque :: co_to_fit Yêu cầu vùng chứa giảm dung lượng để phù hợp với kích thước của nó. |
42 | deque :: kích thước Trả về số phần tử có trong deque. |
43 | deque :: swap Trao đổi nội dung của deque với nội dung của deque x khác . |
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 deques có bằng nhau hay không. |
2 | toán tử! = Kiểm tra xem hai deques có bằng nhau hay không. |
3 | toán tử < Kiểm tra xem deque đầu tiên có nhỏ hơn các deque khác hay không. |
4 | toán tử <= Kiểm tra xem deque đầu tiên có nhỏ hơn hoặc bằng deque khác hay không. |
5 | toán tử> Kiểm tra xem deque đầu tiên có lớn hơn deque khác hay không. |
6 | toán tử> = Kiểm tra xem deque đầu tiên có lớn hơn hoặc bằng deque khác hay không. |
7 | hoán đổi Trao đổi nội dung của hai deque. |