STL trong c ++: Mọi thứ bạn cần biết



Bài viết này sẽ cung cấp cho bạn kiến ​​thức Chi tiết và Toàn diện về STL trong C ++ và cũng sẽ cung cấp cho bạn ý tưởng về các vùng chứa khác nhau.

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.

Container-STL-in-C++

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

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ù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:

  1. Bộ
  2. Multiset
  3. Bản đồ
  4. 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.