Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (529.52 KB, 12 trang )
2. Iterator:
Tất cả các container ở 2 loại: Sequence container và Associative container đều
hỗ trợ các iterator như sau (ví dụ với set, những loại khác có chức năng cũng
vậy).
-begin: trả về một iterator đại diện cho vị trí của phần tử đầu tiên trong
container.
-end: trả về một iterator đại diện cho vị trí đứng ngay sau phần tử cuối cùng
trong container.
-rbegin: trả về reverse iterator tới phần tử đầu
-rend: trả về reverse iterator tới phần tử cuối
-cbegin (C++ 11): trả về một hằng (read-only) iterator đại diện cho vị trí của
phần tử đầu tiên trong container.
-cend (C++ 11): trả về một hằng (read-only) iterator đại diện cho vị trí đứng
ngay sau phần tử cuối cùng trong container.
-crbegin (C++ 11): trả về const_reverse_iterator to reverse beginning
-crend (C++ 11): trả về const_reverse_iterator to reverse end
3. Set (Tập hợp):
std::set là kiểu dữ liệu cho phép lưu trữ nhiều giá trị khác nhau gọi là phần tử, các
phần tử trong cùng một std::set() có cùng một kiểu dữ liệu và duy nhất.
Ví dụ một std::set với các phần tử có kiểu dữ liệu int như sau:
Khi làm việc với kiểu dữ liệu std::set trong C++, cần nhớ hai tính chất đặc trưng của
kiểu dữ liệu này đó là:
Mỗi phần tử trong cùng một std::set là duy nhất (hay unique). Điều này có
nghĩa rằng nếu bạn khơng thể lưu trữ hai phần tử có giá trị như nhau trong
cùng một std::set.
Tất cả các phần trử trong cùng một std::set phải thuộc cùng một kiểu dữ liệu.
a/ Tạo Một Set
Để sử dụng kiểu dữ liệu std::set thì điều đầu tiên bạn cần làm là tham chiếu tới
thư viện chứa kiểu dữ liệu này:
Sau đó bạn có thể tạo một set với các phần tử có kiểu dữ liệu nhất định vdụ int:
Để tạo một set với các phần tử có kiểu dữ liệu thuộc một class cho trước:
b/ Modifiers:
– insert : Chèn phần tử vào set. Để thêm một phần tử vào std::set chúng ta sử dụng
method insert() ví dụ
Do mỗi phần tử trong std::set là duy nhất nên trong trường hợp bạn thêm hai phần
tử có cùng một giá trị thì chỉ phần tử đầu tiên được thêm vào set. Trong ví dụ dưới
đây thì mySet sẽ chỉ có 3 phần tử thay vì 4:
Output:
– erase : có 2 kiểu xóa: xóa theo iterator, hoặc là xóa theo khóa, ví dụ
Output:
– clear : xóa tất cả set,ví dụ
Output:
– swap : Hốn đổi 2 set cho nhau, ví dụ
Output:
c/ Capacity
– size : trả về kích thước hiện tại của set, ví dụ
Output:
– empty : kiểm tra set rỗng hay khơng, vi dụ
Output:
– max_size: trả về kích thước mà set có thể lưu được,ví dụ
Output:
d/ Operations
– find : trả về iterator trỏ đến phần tử cần tìm kiếm. Nếu khơng tìm thấy iterator trỏ về “end”
của set Để tìm phần tử trong Set chúng ta sử dụng phương
thức find() của std::set kết hợp với một iterator: ví dụ
– lower_bound : trả về iterator đến vị trí phần tử bé nhất mà khơng bé hơn (lớn hơn hoặc
bằng) khóa ,nếu khơng tìm thấy trả về vị trí “end” của set.
– upper_bound: trả về iterator đến vị trí phần tử bé nhất mà lớn hơn khóa, nếu khơng tìm
thấy trả về vị trí “end” của set.
Ví dụ
Output:
– count : trả về số lần xuất hiện của khóa trong container. Nhưng trong set, các phần tử chỉ
xuất hiện một lần, nên hàm này có ý nghĩa là sẽ return 1 nếu khóa có trong container, và 0
nếu khơng có. Ví dụ
Output:
Ví dụ: Minh họa các function của set