Thư viện mẫu chuẩn (STL) là một tập hợp các lớp mẫu C ++ để cung cấp các cấu trúc và chức năng dữ liệu lập trình phổ biến như danh sách, ngăn xếp, mảng, v.v. Trong bài viết STL trong C ++ này, chúng ta sẽ thảo luận về các con trỏ sau:
Tiếp tục với bài viết này về STL trong C ++
Mẫu C ++
C ++ cung cấp cho chúng ta một tính năng của các mẫu cho phép các hàm và lớp hoạt động với các kiểu chung. Điều này cho phép khả năng tái sử dụng của một hàm hoặc lớp và cho phép nó hoạt động trên nhiều kiểu dữ liệu khác nhau mà không cần phải viết lại cho từng kiểu.
Tiếp tục với bài viết này về STL trong C ++
Hàm chung và STL
Trong khi lập trình nhiều lúc cần tạo ra các hàm thực hiện các thao tác giống nhau nhưng hoạt động với các kiểu dữ liệu khác nhau. Vì vậy, để khắc phục vấn đề này, C ++ cung cấp một tính năng để tạo một hàm chung duy nhất thay vì nhiều hàm có thể hoạt động với kiểu dữ liệu khác nhau bằng cách sử dụng tham số mẫu. Bộ sưu tập các lớp và chức năng chung này được gọi là Thư viện Mẫu Chuẩn (STL)
Các thành phần của STL hiện là một phần của thư viện C ++ chuẩn được định nghĩa trong không gian tên std. Do đó, chúng ta phải sử dụng lệnh using namespace để nhập chúng vào chương trình của mình.
Cú pháp:
Sử dụng không gian tên std
STL có ba thành phần
Hộp đựng
Thuật toán
Trình lặp lại
Ba thành phần này hoạt động cùng nhau trong sức mạnh tổng hợp để cung cấp hỗ trợ cho nhiều giải pháp lập trình. Thuật toán sử dụng các trình vòng lặp để thực hiện hoạt động được lưu trữ trong các vùng chứa.
Vùng chứa là một đối tượng lưu trữ dữ liệu trong bộ nhớ thành một kiểu có tổ chức. Các vùng chứa trong STL được thực hiện bởi các lớp mẫu và do đó có thể dễ dàng sửa đổi và tùy chỉnh để chứa các loại dữ liệu khác nhau.
Một thủ tục được sử dụng để xử lý dữ liệu chứa trong các vùng chứa được định nghĩa là một thuật toán. STL bao gồm nhiều loại thuật toán khác nhau để hỗ trợ các tác vụ như khởi tạo, tìm kiếm, sao chép, sắp xếp và hợp nhất, sao chép, sắp xếp và hợp nhất. Các thuật toán được thực hiện bởi các hàm khuôn mẫu.
sự khác biệt giữa javascript và jquery là gì
Một trình lặp có thể được định nghĩa là một đối tượng trỏ đến một phần tử trong vùng chứa. Các trình lặp có thể được sử dụng để di chuyển qua nội dung của các vùng chứa. Các trình lặp được xử lý giống như con trỏ. Chúng tôi có thể tăng hoặc giảm chúng. Các bộ lặp kết nối thuật toán với các vùng chứa và đóng một vai trò quan trọng trong việc thao tác dữ liệu được lưu trữ trong các vùng chứa.
Tiếp tục với bài viết này về STL trong C ++
Hộp đựng
STL định nghĩa mười vùng chứa được nhóm thành ba loại.
Hộp đựng | Sự miêu tả | Tập tin tiêu đề | Trình lặp lại |
Véc tơ | Nó có thể được định nghĩa là một mảng động. Nó cho phép truy cập trực tiếp vào bất kỳ phần tử nào. | Truy cập ngẫu nhiên | |
Danh sách | Nó là một danh sách tuyến tính hai chiều. Nó cho phép chèn và xóa ở bất cứ đâu | Hai chiều | |
và | Nó là một hàng đợi hai đầu. Cho phép chèn và xóa ở cả hai đầu. Cho phép truy cập trực tiếp vào bất kỳ phần tử nào. | Truy cập ngẫu nhiên | |
bộ | Nó là một vùng chứa liên kết để lưu trữ các bộ duy nhất. Cho phép tra cứu nhanh chóng. | Hai chiều | |
nhiều bộ | Nó là một vùng chứa liên kết để lưu trữ các tập hợp không phải duy nhất. | Hai chiều | |
bản đồ | Nó là một vùng chứa liên kết để lưu trữ các cặp khóa / giá trị duy nhất. Mỗi khóa chỉ được liên kết với một giá trị. | Hai chiều | |
multimap | Nó là một vùng chứa liên kết để lưu trữ khóa / giá trị trong đó một khóa có thể được liên kết với nhiều giá trị (ánh xạ một-nhiều). Nó cho phép tra cứu dựa trên khóa. | Hai chiều | |
cây rơm ngủ đông trong java là gì | Một ngăn xếp tiêu chuẩn theo sau cuối cùng vào trước ra trước (LIFO) | Không có trình lặp | |
xếp hàng | Hàng đợi tiêu chuẩn theo sau nhập trước xuất trước (FIFO) | Không có trình lặp | |
hàng đợi ưu tiên | Phần tử đầu tiên ra ngoài luôn là phần tử có mức ưu tiên cao nhất | Không có trình lặp |
Vùng chứa trình tự
Vùng chứa trình tự lưu trữ các phần tử theo một thứ tự tuyến tính. Tất cả các yếu tố có liên quan với nhau theo vị trí của chúng dọc theo đường thẳng. Chúng cho phép chèn phần tử và tất cả chúng đều hỗ trợ một số thao tác trên chúng.
STL cung cấp ba loại phần tử trình tự:
- Véc tơ
- Danh sách
- và
Vùng chứa liên kết:
Chúng được thiết kế theo cách có thể hỗ trợ truy cập trực tiếp vào các phần tử bằng cách sử dụng khóa. Chúng không tuần tự. Có bốn loại
vùng chứa liên kết:
- Bộ
- Multiset
- Bản đồ
- Multimap
Tất cả các vùng chứa ở trên lưu trữ dữ liệu trong một cấu trúc được gọi là cây, tạo điều kiện cho
tìm kiếm, xóa và chèn không giống như tuần tự. Bộ chứa hoặc bộ đa hợp có thể lưu trữ các mục khác nhau và cung cấp các hoạt động để thao tác chúng bằng cách sử dụng các giá trị làm khóa.
Và bản đồ hoặc Multimap được sử dụng để lưu trữ các mục theo cặp, một mục được gọi là chìa khóa và mục khác
được gọi là giá trị.
Vùng chứa có nguồn gốc:
STL cung cấp ba vùng chứa dẫn xuất cụ thể là ngăn xếp, hàng đợi và hàng đợi ưu tiên. Chúng còn được gọi là bộ điều hợp vùng chứa.
Có ba loại vùng chứa dẫn xuất:
1. ngăn xếp
2.Queue
3. ưu_mãi
Có thể dễ dàng tạo ngăn xếp, hàng đợi và hàng đợi ưu tiên từ các vùng chứa trình tự khác nhau. Các vùng chứa dẫn xuất không hỗ trợ trình vòng lặp và do đó chúng tôi không thể sử dụng chúng để thao tác dữ liệu. Tuy nhiên, chúng hỗ trợ hai hàm thành viên pop () và push () để thực hiện các thao tác xóa và chèn.
Tiếp tục với bài viết này về STL trong C ++
Thuật toán
Thuật toán là các hàm có thể được sử dụng chung trên nhiều vùng chứa để xử lý nội dung của chúng. Mặc dù mỗi vùng chứa cung cấp các chức năng cho các hoạt động cơ bản của nó, STL cung cấp hơn sáu mươi thuật toán tiêu chuẩn để hỗ trợ các hoạt động mở rộng hoặc phức tạp hơn. Các thuật toán tiêu chuẩn cũng cho phép chúng tôi làm việc với hai loại vùng chứa khác nhau cùng một lúc.
Các thuật toán STL củng cố triết lý về khả năng tái sử dụng. Bằng cách sử dụng các thuật toán này, lập trình viên có thể tiết kiệm rất nhiều thời gian và công sức. Để có quyền truy cập vào các thuật toán STL, chúng ta phải đưa vào chương trình của mình.
Thuật toán STL, dựa trên bản chất của các hoạt động mà chúng thực hiện, có thể được phân loại như sau:
Các thuật toán không thay đổi
Các thuật toán đột biến
Các thuật toán sắp xếp
Đặt thuật toán
Thuật toán quan hệ
Tiếp tục với bài viết này về STL trong C ++
Trình lặp lại:
Các trình lặp hoạt động giống như con trỏ và được sử dụng để truy cập các phần tử của vùng chứa. Chúng tôi sử dụng trình vòng lặp để di chuyển qua nội dung của các vùng chứa. Các trình lặp được xử lý giống như con trỏ. Chúng tôi có thể tăng hoặc giảm chúng theo yêu cầu của chúng tôi. Các bộ lặp kết nối các vùng chứa với các thuật toán và đóng một vai trò quan trọng trong việc thao tác dữ liệu được lưu trữ trong các vùng chứa. Chúng thường được sử dụng để truyền từ phần tử này sang phần tử khác, quá trình này được gọi là lặp qua vùng chứa.
Có năm loại trình lặp:
1. đầu vào
2. đầu ra
3. chuyển tiếp
4. hướng
5.Random
Trình lặp lại | Phương thức truy cập | Hướng di chuyển | Khả năng I / O | Nhận xét |
Đầu vào | Tuyến tính | Chỉ chuyển tiếp | Chỉ đọc | Không thể lưu |
Đầu ra | Tuyến tính | Chỉ chuyển tiếp | Chỉ viết | Không thể lưu |
Ở đằng trước | Tuyến tính | Chỉ chuyển tiếp | Đọc viết | Có thể được lưu |
Hai chiều | Tuyến tính | Tiến và lùi | Đọc viết | Có thể được lưu |
Ngẫu nhiên | Ngẫu nhiên | Tiến và lùi | Đọc viết | Có thể được lưu power bi vs tableau 2016 |
Các loại trình vòng lặp khác nhau phải được sử dụng với các loại vùng chứa khác nhau để chỉ
trình tự và vùng chứa kết hợp được phép di chuyển qua các trình vòng lặp. Mỗi loại trình vòng lặp được sử dụng để thực hiện các chức năng nhất định. Các trình vòng lặp đầu vào và đầu ra hỗ trợ ít chức năng nhất. Chúng chỉ có thể được sử dụng để đi qua thùng chứa. Các trình vòng lặp chuyển tiếp hỗ trợ tất cả các hoạt động của trình vòng lặp đầu vào và đầu ra và cũng giữ nguyên vị trí của nó trong vùng chứa. Trình vòng lặp hai chiều, trong khi hỗ trợ tất cả các hoạt động của trình vòng lặp chuyển tiếp, cung cấp khả năng di chuyển theo hướng lùi trong vùng chứa.
Như vậy là chúng ta đã kết thúc bài viết này về 'STL trong C ++'. Nếu bạn muốn tìm hiểu thêm, hãy xem bởi Edureka, một công ty học trực tuyến đáng tin cậy. Khóa đào tạo và cấp chứng chỉ Java J2EE và SOA của Edureka được thiết kế để đào tạo bạn về cả khái niệm Java cốt lõi và nâng cao cùng với các khung công tác Java khác nhau như Hibernate & Spring.
Có một câu hỏi cho chúng tôi? Vui lòng đề cập đến nó trong phần nhận xét của blog này và chúng tôi sẽ liên hệ lại với bạn trong thời gian sớm nhất.