07/05/2018, 15:06

Thư viện Template chuẩn (STL) trong C++

Hy vọng bạn đã hiểu khái niệm về Template trong C++ đã được chúng tôi trình bày trong chương về Template. Standard Tamplate Library (STL) trong C++ là một tập hợp các lớp Template mạnh mẽ trong C++ để cung cấp các lớp và các hàm được tạo theo khuân mẫu cho mục đích lập trình tổng quát, ...

Hy vọng bạn đã hiểu khái niệm về Template trong C++ đã được chúng tôi trình bày trong chương về Template. Standard Tamplate Library (STL) trong C++ là một tập hợp các lớp Template mạnh mẽ trong C++ để cung cấp các lớp và các hàm được tạo theo khuân mẫu cho mục đích lập trình tổng quát, mà triển khai nhiều thuật toán và cấu trúc dữ liệu được sử dụng phổ biến và thông dụng như vector, list, queue và stack.

Có ba thành phần mang tính cấu trúc mạnh mẽ của Standard Tamplate Library (STL) trong C++ là:

Thành phần Miêu tả
Containers Containers được sử dụng để quản lý các tập hợp đối tượng của một kiểu cụ thể. Có một số kiểu Containers khác nhau như list, vector, map, …
Algorithms Algorithms hoạt động trên containers. Chúng cung cấp các phương thức mà theo đó bạn sẽ thực hiện việc khởi tạo, sắp xếp, tìm kiếm nội dung của Containers
Iterators Iterators được sử dụng để duyệt qua các phần tử trong tập hợp các đối tượng. Những tập hợp này có thể là Containers hoặc Subset của Containers

Chúng ta sẽ đề cập về 3 thành phần của STL trong C++ trong chương tiếp theo khi bàn luận về Thư viện chuẩn C++ (C++ Standard Library). Bây giờ, bạn ghi nhớ rằng, 3 thành phần này có một tập hợp các hàm được định nghĩa trước, mà giúp chúng ta trong việc thực hiện các tác vụ phức tạp trở nên đơn giản hơn.

Xét ví dụ sau minh họa vector containers (là một Template chuẩn trong C++), mà giống như một mảng với một exception mà tự động xử lý các nhu cầu về storage của riêng nó khi nó cần:

#include <iostream>
#include <vector>
using namespace std;
 
int main()
{
   // tao mot vector de luu tru cac so nguyen
   vector<int> vec; 
   int i;

   // hien thi kich co ban dau cua vector
   cout << "Kich co cua vector = " << vec.size() << endl;

   // day 5 gia tri vao trong vector
   for(i = 0; i < 5; i++){
      vec.push_back(i);
   }

   // hien thi kich co da duoc mo rong cua vector
   cout << "Kich co da duoc mo rong cua vector = " << vec.size() << endl;

   // truy cap 5 gia tri cua vector
   for(i = 0; i < 5; i++){
      cout << "Gia tri cua vec [" << i << "] = " << vec[i] << endl;
   }

   // su dung iterator de truy cap cac gia tri
   vector<int>::iterator v = vec.begin();
   while( v != vec.end()) {
      cout << "Gia tri cua v = " << *v << endl;
      v++;
   }

   return 0;
}

Biên dịch và chạy chương trình C++ trên sẽ cho kết quả sau:

Vector trong C++

Dưới đây là các điểm quan trọng cần ghi nhớ liên quan tới các hàm đa dạng đã được sử dụng trong ví dụ trên:

  • Hàm thành viên push_back() chèn giá trị tại phần cuối của vector, mở rộng kích cỡ của nó khi cần.

  • Hàm size() hiển thị kích cỡ của vector.

  • Hàm begin() trả về một iterator tới phần đầu của vector.

  • Hàm end() trả về một interator tới phần cuối của vecor.

Mọi người cho thể tham gia khóa học thứ 6 của vietjackteam (đang tuyển sinh) vào đầu tháng 03/2018 do anh Nguyễn Thanh Tuyền, admin vietjack.com trực tiếp giảng dạy tại Hà Nội. Chi tiết nội dung khóa học tham khỏa link : .Các bạn học CNTT, điện tử viễn thông, đa phương tiện, điện-điện tử, toán tin có thể theo học khóa này. Số lượng các công việc Java hoặc .NET luôn gấp ít nhất 3 lần Android hoặc iOS trên thị trường tuyển dụng.

Mọi người có thể xem demo nội dung khóa học tại địa chỉ

Các bạn ở xa học không có điều kiện thời gian có thể tham dự khóa Java online để chủ động cho việc học tập. Trong tháng 4/2018, VietJack khuyến mại giá SỐC chỉ còn 150k cho khóa học, liên hệ facebook admin fb.com/tuyen.vietjack để thanh toán chuyển khoản hoặc thẻ điện thoại, khóa học bằng Tiếng Việt với gần 100 video, các bạn có thể chủ động bất cứ lúc nào, và xem mãi mãi. Thông tin khóa học tại

Loạt bài hướng dẫn học lập trình C++ cơ bản và nâng cao của chúng tôi dựa trên nguồn tài liệu của: Tutorialspoint.com

Follow fanpage của team hoặc facebook cá nhân Nguyễn Thanh Tuyền để tiếp tục theo dõi các loạt bài mới nhất về Java,C,C++,Javascript,HTML,Python,Database,Mobile.... mới nhất của chúng tôi.

Bài học C++ phổ biến khác tại vietjack.com:

0