Bộ chứa STL trong C++ là gì

Bo Chua Stl Trong C La Gi



Trong C++, STL (Thư viện mẫu chuẩn), hộp đựng là các đối tượng được sử dụng để lưu trữ các bộ sưu tập của các đối tượng khác. Chúng hoạt động tương tự như các mẫu lớp và hỗ trợ một số lượng lớn các loại phần tử và cung cấp các hàm thành viên để truy cập trực tiếp các phần tử của chúng hoặc thông qua các trình vòng lặp.

Các loại C++ STL Container

Trong C++, có ba loại STL hộp đựng , được liệt kê dưới đây:







1: Vùng chứa tuần tự

Trong C ++, các thùng chứa tuần tự cho phép chúng tôi lưu trữ các mục có thể được truy xuất tuần tự. Những cái này hộp đựng được mã hóa dưới dạng mảng hoặc danh sách cấu trúc dữ liệu được liên kết. Một số loại container tuần tự được đưa ra dưới đây.



  • Vectơ: Nó là một mảng có kích thước động được lưu trữ trong bộ nhớ theo cách liền kề.
  • Về cái gì: Nó đại diện cho một hàng đợi hai đầu hỗ trợ các hoạt động cho cả việc chèn và xóa.
  • Mảng: Nó là một mảng tĩnh được phân bổ trong quá trình biên dịch trong khi vẫn giữ cố định kích thước của nó.
  • Danh sách: Nó là một danh sách liên kết kép thực hiện việc chèn và xóa nhanh các phần tử tại bất kỳ vị trí nào trong danh sách.
  • Danh sách chuyển tiếp: Nó là một danh sách liên kết đơn giống như một danh sách nhưng bạn chỉ có thể duyệt nó theo một hướng.

Ví dụ



Trong ví dụ này, chúng ta sẽ sử dụng lớp véc tơ để chỉ ra làm thế nào một tuần tự thùng đựng hàng hoạt động.





#include
#bao gồm
sử dụng không gian tên std;
int chính ( ) {
// khởi tạo một vector của int kiểu
véc tơ < int > số = { 10 , 2 , 16 , 70 , 5 } ;
// in véc tơ
cout << 'Các con số là:' ;
( tự động & tôi: số )
{
cout << Tôi << ', ' ;
}
trở lại 0 ;
}

Đoạn mã trên thể hiện việc sử dụng tuần tự hộp đựng ở định dạng vector, cho phép lưu trữ các mảng số nguyên. Chương trình khởi tạo một vectơ kiểu số nguyên, gán các giá trị cho nó và in chúng bằng một vòng lặp. Ví dụ này cho thấy việc lưu trữ và truy cập dữ liệu trong C++ dễ dàng như thế nào bằng cách sử dụng vùng chứa tuần tự .



2: Hộp chứa liên kết

Các thùng chứa liên kết cho phép chúng tôi lưu trữ các phần tử theo thứ tự cụ thể được xác định bởi toán tử so sánh. không giống container tuần tự , thứ tự các phần tử trong container kết hợp được duy trì bằng cách sử dụng các khóa cho phép người dùng tổ chức và truy cập các phần tử. Khi một phần tử được chèn vào một vùng chứa kết hợp , nó sẽ tự động được sắp xếp ở đúng vị trí dựa trên khóa của nó. Các loại thùng chứa này được triển khai bên trong giống như cấu trúc dữ liệu cây nhị phân.

Các kết hợp hộp đựng được phân loại là:

  • Bản đồ: một tập hợp các cặp khóa-giá trị đã được sắp xếp bằng các khóa duy nhất
  • Đa bản đồ: một tập hợp các cặp khóa-giá trị đã được sắp xếp bằng các khóa
  • Bộ: Các phím độc đáo được thu thập và sắp xếp theo các phím.
  • nhiều bộ: một bộ sưu tập các khóa đã được sắp xếp bằng các khóa

Ví dụ

Để minh họa cách một kết hợp thùng đựng hàng hoạt động, chúng tôi sẽ sử dụng đặt lớp trong ví dụ này.

#include
#bao gồm
sử dụng không gian tên std;
int chính ( )
{
// khởi tạo một bộ của int kiểu
bộ < int > số = { 10 , 2 , 16 , 70 , 5 } ;
// in bộ
cout << 'Các con số là:' ;
( tự động & tôi: số )
{
cout << Tôi << ', ' ;
}
trở lại 0 ;
}

Đoạn mã trên khởi tạo một tập hợp các số nguyên trong C++, đây là một ví dụ về bộ chứa kết hợp. Bộ đảm bảo rằng các phần tử được sắp xếp theo thứ tự tăng dần theo mặc định. Đoạn mã sau đó in ra các số trong tập hợp bằng vòng lặp for.

3: Vùng chứa liên kết không có thứ tự

Trong C++, liên kết không có thứ tự hộp đựng được sử dụng để cung cấp các phiên bản chưa được sắp xếp của một kết hợp thùng đựng hàng . Chúng được triển khai nội bộ giống như cấu trúc dữ liệu bảng băm. Các kết hợp hộp đựng được phân loại thành:

  • Bản đồ không có thứ tự: một bộ sưu tập các cặp khóa-giá trị đã được băm bằng các khóa duy nhất.
  • Đa bản đồ không có thứ tự: bộ sưu tập cặp khóa-giá trị đã được băm bằng khóa.
  • Bộ không có thứ tự: một bộ sưu tập các khóa duy nhất đã được băm bằng các khóa.
  • Nhiều bộ không có thứ tự: một bộ sưu tập các khóa đã được băm bằng các khóa.

Ví dụ

Để minh họa cách một liên kết không có thứ tự thùng đựng hàng hoạt động, chúng tôi sẽ sử dụng tập hợp không có thứ tự lớp trong ví dụ này.

#include
#include
sử dụng không gian tên std;
int chính ( )
{
// khởi tạo một unordered_set của int kiểu
unordered_set < int > số = { 10 , 2 , 16 , 70 , 5 } ;
// in bộ
cout << 'Các con số là:' ;
( tự động & tôi: số )
{
cout << Tôi << ', ' ;
}
trở lại 0 ;
}

Phần kết luận

Một STL C++ thùng đựng hàng là đối tượng giữ để lưu trữ bộ sưu tập các đối tượng khác. Chúng hoạt động tương tự như các mẫu lớp và hỗ trợ một số lượng lớn các loại phần tử. Trong hướng dẫn này, chúng ta đã thảo luận về các loại bộ chứa STL C++ được sử dụng phổ biến nhất, đó là vùng chứa tuần tự, vùng chứa liên kết cũng như container kết hợp không có thứ tự .