Thư viện C ++ - <unordered_map>
Giới thiệu về bản đồ không có thứ tự
Bản đồ không có thứ tự là từ điển giống như cấu trúc dữ liệu. Nó là một chuỗi cặp (khóa, giá trị), trong đó chỉ có giá trị duy nhất được liên kết với mỗi khóa duy nhất. Nó thường được gọi là mảng kết hợp . Nó cho phép truy xuất nhanh các phần tử riêng lẻ dựa trên các khóa của chúng. Nó cũng triển khai toán tử truy cập trực tiếp (toán tử chỉ số con []) cho phép truy cập trực tiếp giá trị được ánh xạ bằng cách sử dụng giá trị khóa của nó làm đối số.
Bản đồ không có thứ tự không sắp xếp phần tử của nó theo bất kỳ thứ tự cụ thể nào liên quan đến khóa hoặc giá trị được ánh xạ của chúng, thay vào đó tổ chức thành các nhóm tùy thuộc vào giá trị băm của chúng để cho phép truy cập nhanh vào các phần tử riêng lẻ trực tiếp bằng các giá trị khóa của chúng.
Bản đồ không có thứ tự hoạt động tốt hơn bản đồ trong khi truy cập các phần tử riêng lẻ bằng các phím của chúng. Nhưng đối với lặp lại phạm vi hiệu suất của chúng thấp đáng kể.
Định nghĩa
Dưới đây là định nghĩa của std :: unardered_map từ tệp tiêu đề <unordered_map>
template < class Key,
class T,
class Hash = hash<Key>,
class Pred = equal_to<Key>,
class Alloc = allocator< pair<const Key,T> >
> class unordered_map;
Thông số
Key - Loại chìa khóa.
T - Loại giá trị được ánh xạ.
Hash- Một kiểu đối tượng hàm đơn phân lấy một đối tượng kiểu khóa kiểu làm đối số và trả về giá trị duy nhất của kiểu size_t dựa trên nó.
Pred- Một vị từ nhị phân mà hai đối số của kiểu khóa và trả về một bool.
Alloc - Loại đối tượng cấp phát.
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.
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 | loại chính | Khóa (Tham số đầu tiên của mẫu) |
2 | mapped_type | T (Tham số thứ hai của mẫu) |
3 | value_type | cặp <const key_type, mapped_type> |
4 | máy băm cỏ | Tham số mẫu thứ ba (mặc định là: hash <key_type>) |
5 | key_equal | Tham số mẫu thứ tư (mặc định là: equal_to <key_type>) |
6 | Cấp phát_type | Alloc (Tham số thứ năm của mẫu) |
7 | tài liệu tham khảo | value_type & |
số 8 | const_reference | const value_type & |
9 | con trỏ | phân bổ_traits <Alloc> :: con trỏ |
10 | const_pointer | Deliveryator_traits <Alloc> :: const_pointer |
11 | người lặp lại | Một trình lặp chuyển tiếp tới value_type value_type |
12 | const_iterator | Một trình lặp chuyển tiếp đến const value_type value_type |
13 | local_iterator | Một trình lặp chuyển tiếp tới value_type |
14 | const_local_iterator | Một trình lặp chuyển tiếp tới const value_type |
15 | chênh_chung | ptrdiff_t |
16 | size_type | size_t |
Các hàm từ <unordered_map>
Dưới đây là danh sách tất cả các phương thức từ tiêu đề <unordered_map>.
Người xây dựng
Sr.No. | Phương pháp & Mô tả |
---|---|
1 | unirdered_map :: unsrdered_map hàm tạo mặc định Tạo một bản đồ không có thứ tự trống không có phần tử nào. |
2 | unirdered_map :: unsrdered_map copy constructor Tạo một bản đồ không có thứ tự với bản sao của từng phần tử có trong bản đồ không có thứ tự hiện có. |
3 | unrdered_map :: hàm tạo di chuyển unsrdered_map Xây dựng một bản đồ không có thứ tự với nội dung của bản đồ khác bằng cách sử dụng ngữ nghĩa di chuyển. |
4 | unsrdered_map :: hàm tạo phạm vi không có thứ tự_map Tạo một sơ đồ không có thứ tự với nhiều phần tử trong phạm vi từ đầu tiên đến cuối cùng . |
5 | unrdered_map :: unsrdered_map khởi tạo_danh sách khởi tạo Tạo một bản đồ không có thứ tự từ danh sách khởi tạo. |
Kẻ hủy diệt
Sr.No. | Phương pháp & Mô tả |
---|---|
1 | unirdered_map :: ~ unardered_map
Hủy đối tượng bản đồ không có thứ tự 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 | unirdered_map :: tại
Trả về một tham chiếu đến giá trị được ánh xạ liên kết với khóa k . |
2 | unirdered_map :: begin trình vòng lặp vùng chứa Trả về một trình lặp tham chiếu đến phần tử đầu tiên của bản đồ. |
3 | unrdered_map :: begin bucket iterator Trả về một trình lặp trỏ đến phần tử đầu tiên trong một trong các nhóm của nó. |
4 | unrdered_map :: bucket
Trả về số nhóm chứa phần tử có khóa k . |
5 | unrdered_map :: bucket_count
Trả về số lượng nhóm trong vùng chứa bản đồ chưa có thứ tự. |
6 | unrdered_map :: bucket_size
Trả về số phần tử có trong nhóm thứ n . |
7 | unrdered_map :: trình lặp vùng chứa cbegin Trả về một trình lặp hằng số tham chiếu đến phần tử đầu tiên của bản đồ không có thứ tự. |
số 8 | unrdered_map :: trình lặp nhóm cbegin Trả về một trình lặp không đổi trỏ đến phần tử đầu tiên trong một trong các nhóm của nó. |
9 | unrdered_map :: cend container iterator Trả về một trình lặp không đổi trỏ đến phần tử cuối cùng của bản đồ không có thứ tự. |
10 | unirdered_map :: cend bucket iterator Trả về một trình lặp không đổi trỏ đến phần tử quá khứ-cuối trong một trong các nhóm của nó. |
11 | unrdered_map :: clear
Hủy bỏ bản đồ không có thứ tự bằng cách xóa tất cả các phần tử và đặt kích thước của bản đồ không có thứ tự thành 0 . |
12 | unrdered_map :: count
Trả về số lượng giá trị được ánh xạ liên kết với khóa k . |
13 | unrdered_map :: emplace
Mở rộng vùng chứa bằng cách chèn phần tử mới. |
14 | unrdered_map :: emplace_hint
Chèn một phần tử mới trong bản đồ không có thứ tự bằng cách sử dụng gợi ý làm vị trí cho phần tử. |
15 | unrdered_map :: trống
Kiểm tra xem bản đồ chưa có thứ tự có trống hay không. |
16 | unrdered_map :: trình vòng lặp vùng chứa cuối Trả về một trình lặp trỏ đến phần tử quá khứ-cuối trong bản đồ không có thứ tự. |
17 | unrdered_map :: trình lặp nhóm cuối Trả về một trình lặp trỏ đến phần tử quá khứ-cuối trong một trong các nhóm của nó. |
18 | unirdered_map :: bằng nhau
Trả về phạm vi phần tử phù hợp với khóa cụ thể. |
19 | unardered_map :: xóa phiên bản vị trí Loại bỏ một phần tử của bản đồ không có thứ tự khỏi vị trí . |
20 | unirdered_map :: xóa phiên bản khóa Loại bỏ giá trị được ánh xạ liên kết với khóa k . |
21 | unardered_map :: phiên bản dải ô xóa Loại bỏ phạm vi của phần tử khỏi bản đồ không có thứ tự. |
22 | unrdered_map :: find
Tìm một phần tử được liên kết với khóa k . |
23 | unrdered_map :: get_allocator
Trả về một trình phân bổ được liên kết với bản đồ không có thứ tự. |
24 | unrdered_map :: hash_ Chức năng
Tính toán đối tượng hàm băm được sử dụng bởi vùng chứa bản đồ không có thứ tự. |
25 | unrdered_map :: insert
Mở rộng vùng chứa bằng cách chèn phần tử mới trong bản đồ không có thứ tự. |
26 | unrdered_map :: chèn phiên bản di chuyển Mở rộng vùng chứa bằng cách chèn phần tử mới trong bản đồ không có thứ tự. |
27 | unrdered_map :: chèn phiên bản gợi ý Mở rộng liên tục bằng cách chèn phần tử mới vào bản đồ không có thứ tự. |
28 | unsrdered_map :: chèn phiên bản di chuyển và gợi ý Mở rộng bản đồ không có thứ tự bằng cách chèn phần tử mới. |
29 | unardered_map :: chèn phiên bản phạm vi Mở rộng vùng chứa bằng cách chèn các phần tử mới vào bản đồ chưa có thứ tự. |
30 | unrdered_map :: chèn phiên bản initializer_list Mở rộng bản đồ bằng cách chèn phần tử mới từ danh sách trình khởi tạo. |
31 | unrdered_map :: key_eq
Trả về hàm so sánh các khóa cho bằng nhau. |
32 | unrdered_map :: load_factor
Trả về hệ số tải hiện tại của vùng chứa bản đồ không có thứ tự. |
33 | unrdered_map :: max_bucket_count
Trả về số lượng nhóm tối đa mà vùng chứa bản đồ không có thứ tự có thể có. |
34 | unardered_map :: max_load_factor nhận phiên bản Trả về hệ số tải tối đa hiện tại cho vùng chứa bản đồ không có thứ tự. |
35 | phiên bản thiết lập không có thứ tự_map :: max_load_factor Chỉ định hệ số tải mới cho vùng chứa bản đồ không có thứ tự. |
36 | unrdered_map :: max_size
Trả về số lượng phần tử tối đa có thể được chứa bởi bản đồ không có thứ tự. |
37 | unrdered_map :: operator = copy version Gán nội dung mới cho bản đồ chưa có thứ tự bằng cách thay thế các nội dung cũ và sửa đổi kích thước nếu cần. |
38 | unsrdered_map :: operator = di chuyển phiên bản Di chuyển nội dung của một bản đồ chưa có thứ tự này sang một bản đồ khác và sửa đổi kích thước nếu cần. |
39 | phiên bản unsrdered_map :: operator = initializer_list Sao chép các phần tử từ danh sách trình khởi tạo sang bản đồ không có thứ tự. |
40 | unrdered_map :: operator []
Nếu khóa k khớp với một phần tử trong vùng chứa, thì phương thức trả về một tham chiếu đến phần tử. |
41 | unsrdered_map :: operator [] di chuyển phiên bản Nếu khóa k khớp với một phần tử trong vùng chứa, thì phương thức trả về một tham chiếu đến phần tử. |
42 | unrdered_map :: rehash
Đặt số lượng nhóm trong vùng chứa thành n hoặc nhiều hơn. |
43 | unrdered_map :: dự trữ
Đặt số lượng nhóm trong vùng chứa thích hợp nhất để chứa ít nhất n phần tử. |
44 | unrdered_map :: kích thước
Trả về số lượng phần tử có trong bản đồ không có thứ tự. |
45 | unirdered_map :: swap
Trao đổi nội dung của bản đồ không có thứ tự đầu tiên với bản đồ 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 | unrdered_map :: operator ==
Kiểm tra xem hai bản đồ không có thứ tự có bằng nhau hay không. |
2 | unsrdered_map :: operator! =
Kiểm tra xem hai bản đồ không có thứ tự có bằng nhau hay không. |
3 | unirdered_map :: swap
Trao đổi nội dung của bản đồ không có thứ tự đầu tiên với bản đồ khác. |
Giới thiệu về bản đồ không có thứ tự_multimap
Unordered_multimap là từ điển giống như cấu trúc dữ liệu. Nó là một chuỗi các cặp (khóa, giá trị), trong đó các phần tử khác nhau có thể có các khóa tương đương. Các phần tử có các khóa tương đương được nhóm lại với nhau trong cùng một nhóm và theo cách mà một trình vòng lặp bằng_bảng có thể lặp lại qua tất cả chúng.
Unordered_multimap không sắp xếp phần tử của nó theo bất kỳ thứ tự cụ thể nào liên quan đến khóa hoặc giá trị được ánh xạ của chúng, thay vào đó tổ chức thành các nhóm tùy thuộc vào giá trị băm của chúng để cho phép truy cập nhanh vào các phần tử riêng lẻ trực tiếp bằng các giá trị khóa của chúng.
Định nghĩa
Dưới đây là định nghĩa của std :: unardered_multimap từ tệp tiêu đề <unordered_map>
template < class Key,
class T,
class Hash = hash<Key>,
class Pred = equal_to<Key>,
class Alloc = allocator< pair<const Key,T> >
> class unordered_multimap;
Thông số
Key - Loại chìa khóa.
T - Loại giá trị được ánh xạ.
Hash- Một kiểu đối tượng hàm đơn phân lấy một đối tượng kiểu khóa kiểu làm đối số và trả về giá trị duy nhất của kiểu size_t dựa trên nó.
Pred- Một vị từ nhị phân mà hai đối số của kiểu khóa và trả về một bool.
Alloc - Loại đối tượng cấp phát.
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.
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 | loại chính | Khóa (Tham số đầu tiên của mẫu) |
2 | mapped_type | T (Tham số thứ hai của mẫu) |
3 | value_type | cặp <const key_type, mapped_type> |
4 | máy băm cỏ | Tham số mẫu thứ ba (mặc định là: hash <key_type>) |
5 | key_equal | Tham số mẫu thứ tư (mặc định là: equal_to <key_type>) |
6 | Cấp phát_type | Alloc (Tham số thứ năm của mẫu) |
7 | tài liệu tham khảo | value_type & |
số 8 | const_reference | const value_type & |
9 | con trỏ | phân bổ_traits <Alloc> :: con trỏ |
10 | const_pointer | Deliveryator_traits <Alloc> :: const_pointer |
11 | người lặp lại | Một trình lặp chuyển tiếp tới value_type value_type |
12 | const_iterator | Một trình lặp chuyển tiếp đến const value_type value_type |
13 | local_iterator | Một trình lặp chuyển tiếp tới value_type |
14 | const_local_iterator | Một trình lặp chuyển tiếp tới const value_type |
15 | chênh_chung | ptrdiff_t |
16 | size_type | size_t |
Các hàm từ <unordered_multimap>
Dưới đây là danh sách tất cả các phương thức từ tiêu đề <unordered_map>.
Người xây dựng
Sr.No. | Phương pháp & Mô tả |
---|---|
1 | hàm tạo mặc định không có thứ tự_multimap :: unsrdered_multimap () Tạo một sơ đồ không có thứ tự_multimap trống không có phần tử nào. |
2 | hàm tạo bản sao chưa có thứ tự_multimap :: unsrdered_multimap () Xây dựng một bản đồ không có thứ tự_multimap với bản sao của mỗi phần tử có trong bản đồ không có thứ tự_multimap hiện có. |
3 | unrdered_multimap :: unsrdered_multimap () hàm tạo di chuyển Xây dựng một bản đồ không có thứ tự_multimap với nội dung của các bản đồ khác bằng cách sử dụng ngữ nghĩa di chuyển. |
4 | phương thức khởi tạo phạm vi không có thứ tự_multimap :: unardered_multimap () Tạo một sơ đồ không có thứ tự_multimap với nhiều phần tử trong phạm vi từ đầu tiên đến cuối cùng . |
5 | unsrdered_multimap :: unsrdered_multimap () constructor khởi tạo_list Tạo một sơ đồ không có thứ tự_multimap từ danh sách khởi tạo. |
Kẻ hủy diệt
Sr.No. | Phương pháp & Mô tả |
---|---|
1 | unrdered_multimap :: ~ unardered_multimap ()
Hủy đối tượng không có thứ tự_multimap 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 | trình vòng lặp vùng chứa chưa có thứ tự_multimap :: begin () Trả về một trình lặp tham chiếu đến phần tử đầu tiên của bản đồ không có thứ tự_mulitmap. |
2 | trình vòng lặp xô unardered_multimap :: begin () Trả về một trình lặp trỏ đến phần tử đầu tiên trong một trong các nhóm của nó. |
3 | unsrdered_multimap :: bucket ()
Trả về số nhóm chứa phần tử có khóa k . |
4 | unrdered_multimap :: bucket_count ()
Trả về số lượng nhóm hiện có trong vùng chứa không có thứ tự_multimap. |
5 | unsrdered_multimap :: bucket_size ()
Trả về số phần tử có trong nhóm thứ n . |
6 | trình vòng lặp vùng chứa unsrdered_multimap :: cbegin () Trả về một trình lặp hằng số tham chiếu đến phần tử đầu tiên của sơ đồ không có thứ tự_multimap. |
7 | trình vòng lặp xô unsrdered_multimap :: cbegin () Trả về một trình lặp không đổi trỏ đến phần tử đầu tiên trong một trong các nhóm của nó. |
số 8 | Trình vòng lặp vùng chứa chưa có thứ tự_multimap :: cend () Trả về một trình lặp không đổi trỏ đến phần tử quá khứ-cuối của bản đồ không có thứ tự_multimap. |
9 | Trình vòng lặp xô unsrdered_multimap :: cend () Trả về một trình lặp không đổi trỏ đến phần tử quá khứ-cuối trong một trong các nhóm của nó. |
10 | unsrdered_multimap :: clear ()
Hủy bỏ bản đồ không có thứ tự_multimap bằng cách loại bỏ tất cả các phần tử và đặt kích thước của bản đồ không có thứ tự thành 0 . |
11 | unrdered_multimap :: count ()
Trả về số lượng giá trị được ánh xạ liên kết với khóa k . |
12 | unrdered_multimap :: emplace ()
Mở rộng vùng chứa bằng cách chèn phần tử mới. |
13 | unrdered_multimap :: emplace_hint ()
Chèn một phần tử mới vào một sơ đồ không có thứ tự_multimap bằng cách sử dụng gợi ý làm vị trí cho phần tử. |
14 | unrdered_multimap :: blank ()
Kiểm tra xem bản đồ không có thứ tự nào có trống hay không. |
15 | trình lặp vùng chứa chưa có thứ tự_multimap :: end () Trả về một trình vòng lặp trỏ đến phần tử quá khứ-cuối trong bản đồ không có thứ tự_multimap. |
16 | trình vòng lặp xô unsrdered_multimap :: end () Trả về một trình lặp trỏ đến phần tử quá khứ-cuối trong một trong các nhóm của nó. |
17 | unrdered_multimap :: equal_range ()
Trả về phạm vi phần tử phù hợp với khóa cụ thể. |
18 | phiên bản vị trí unardered_multimap :: delete () Loại bỏ một phần tử của sơ đồ không có thứ tự_multimap khỏi vị trí . |
19 | phiên bản khóa không có thứ tự_multimap :: delete () Loại bỏ giá trị được ánh xạ liên kết với khóa k . |
20 | phiên bản dải ô unsrdered_multimap :: delete () Loại bỏ dải phần tử khỏi bản đồ không có thứ tự_multimap. |
21 | unsrdered_multimap :: find ()
Tìm một phần tử được liên kết với khóa k . |
22 | unsrdered_multimap :: get_allocator ()
Trả về trình cấp phát được liên kết với bản đồ không có thứ tự_multimap. |
23 | unrdered_multimap :: hash_osystem ()
Tính toán đối tượng hàm băm được sử dụng bởi vùng chứa không có thứ tự_multimap. |
24 | phiên bản giá trị unsrdered_multimap :: insert () Mở rộng vùng chứa bằng cách chèn phần tử mới trong bản đồ không có thứ tự_multimap. |
25 | unsrdered_multimap :: insert () di chuyển phiên bản Mở rộng bản đồ không có thứ tự bằng cách chèn phần tử mới. |
26 | phiên bản gợi ý unsrdered_multimap :: insert () Mở rộng vùng chứa bằng cách chèn phần tử mới trong bản đồ không có thứ tự_multimap. |
27 | unrdered_multimap :: insert () gợi ý phiên bản di chuyển Mở rộng vùng chứa bằng cách chèn phần tử mới trong bản đồ không có thứ tự_multimap bằng cách sử dụng ngữ nghĩa di chuyển. |
28 | phiên bản dải ô unsrdered_multimap :: insert () Mở rộng vùng chứa bằng cách chèn các phần tử mới trong bản đồ không có thứ tự_multimap. |
29 | phiên bản unsrdered_multimap :: insert () initializer_list Mở rộng bản đồ không có thứ tự bằng cách chèn phần tử mới từ danh sách trình khởi tạo. |
30 | unrdered_multimap :: key_eq ()
Trả về hàm so sánh các khóa cho bằng nhau. |
31 | unsrdered_multimap :: load_factor ()
Trả về hệ số tải hiện tại của vùng chứa không có thứ tự_multimap. |
32 | unrdered_multimap :: max_bucket_count ()
Trả về số lượng nhóm tối đa mà vùng chứa không có thứ tự_multimap có thể có. |
33 | unardered_multimap :: max_load_factor () lấy phiên bản Trả về hệ số tải tối đa hiện tại cho vùng chứa không có thứ tự_multimap. |
34 | unsrdered_multimap :: max_load_factor () đặt phiên bản Chỉ định hệ số tải mới cho vùng chứa không có thứ tự_multimap. |
35 | unrdered_multimap :: max_size ()
Trả về số phần tử tối đa có thể được chứa bởi bản đồ không có thứ tự_multimap. |
36 | phiên bản sao chép không có thứ tự_multimap :: operator = () Gán nội dung mới cho bản đồ không có thứ tự_multimap bằng cách thay thế các nội dung cũ và sửa đổi kích thước nếu cần. |
37 | unardered_multimap :: operator = () di chuyển phiên bản Di chuyển nội dung của một sơ đồ không có thứ tự này sang một bản đồ khác và sửa đổi kích thước nếu cần. |
38 | unirdered_multimap :: operator = () Phiên bản khởi tạo_ danh sách Sao chép các phần tử từ danh sách trình khởi tạo sang bản đồ không có thứ tự_multimap. |
39 | unrdered_multimap :: rehash ()
Đặt số lượng nhóm trong vùng chứa thành n hoặc nhiều hơn. |
40 | unrdered_multimap :: Reserve ()
Đặt số lượng nhóm trong vùng chứa thích hợp nhất để chứa ít nhất n phần tử. |
41 | unrdered_multimap :: size ()
Trả về số phần tử có trong bản đồ không có thứ tự_multimap. |
42 | unsrdered_multimap :: swap ()
Trao đổi nội dung của bản đồ không có thứ tự đầu tiên với bản đồ 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 | unrdered_multimap :: operator == ()
Kiểm tra xem hai không có thứ tự_multimaps có bằng nhau hay không. |
2 | unsrdered_multimap :: operator! = ()
Kiểm tra xem hai không có thứ tự_multimaps có bằng nhau hay không. |
3 | unsrdered_multimap :: swap ()
Trao đổi nội dung của bản đồ không có thứ tự đầu tiên với bản đồ khác. |