Hướng dẫn cách tìm phần tử trong set. Bạn sẽ học được cách sử dụng các hàm find(), lower_bound() và upper_bound() để tìm vị trí của phần tử trong set, cũng như hàm cout() để đếm số lần xuất hiện của phần tử trong set C++ sau bài học này.
Tìm phần tử trong set C++ bằng hàm find
Hàm find là một hàm thành viên trong class std:set, có tác dụng tìm vị trí phần tử có giá trị chỉ định trong set.
Chúng ta sử dụng hàm find trong C++ với cú pháp sau đây:
st.find(val);
Trong đó val
là giá trị của phần tử cần tìm trong set st
.
Hàm find() sẽ trả về trình lặp trỏ đến vị trí phần tử, nếu nó tồn tại trong set. Và nếu phần tử đó không tồn tại, hàm sẽ trả về trình lặp trỏ đến vị trí cuối cùng trong set.
Bằng cách ứng dụng hàm find(), chúng ta có thể tìm ra vị trí của phần tử đó trong set, rồi kết hợp với hàm clear() để xóa nó đi như ví dụ cụ thể sau đây:
|
Kết quả:
1 2 3 4 5 9 |
Tìm phần tử trong set C++ bằng hàm equal_range
Hàm equal_range là một hàm thành viên trong class std:set, có tác dụng tìm phạm vi của tất cả các phần tử giống với giá trị chỉ định trong set.
Chúng ta sử dụng hàm equal_range trong C++ với cú pháp sau đây:
st.equal_range(val);
Trong đó val
là giá trị phần tử cần tìm trong set st
.
Hàm equal_range() sẽ trả về một cặp giá trị, với giá trị đầu tiên trỏ đến đầu phạm vi (tương đương kết quả hàm lower_bound), và giá trị thứ hai trỏ đến cuối phạm vi (tương đương kết quả hàm upper_bound)chứa tất cả các phần tử có giá trị giống giá trị chỉ định.
Bằng cách ứng dụng hàm equal_range(), chúng ta có thể tìm ra phạm vi chứa phần tử có giá trị chỉ định trong set như sau
|
Kết quả:
1 2 3 5 7 |
Tìm phần tử trong set C++ bằng hàm lower_bound
Hàm lower_bound là một hàm thành viên trong class std::set, có tác dụng tìm vị trí phần tử đầu tiên trong set có giá trị lớn hơn hoặc bằng với giá trị chỉ định.
Chúng ta sử dụng hàm lower_bound trong C++ với cú pháp sau đây:
st.lower_bound(val);
Trong đó val
là giá trị của phần tử cần tìm trong set st
.
Hàm lower_bound() sẽ trả về trình lặp trỏ đến vị trí vị trí phần tử đầu tiên có giá trị lớn hơn hoặc bằng với giá trị chỉ định. Và nếu không tìm thấy, hàm sẽ trả về trình lặp trỏ đến vị trí cuối cùng trong set.
Bằng cách ứng dụng hàm lower_bound() kết hợp hàm upper_bound() mà Kiyoshi sẽ hướng dẫn ở phần dưới, chúng ta có thể tìm ra 2 vị trí rồi xóa các phần tử có trong phạm vi xác định bởi vị trí đó như ví dụ sau:
|
Kết quả, các phần tử trong phạm vi từ 2 đến trước 9 đã bị xóa đi.
1 2 3 4 5 9 |
Tìm phần tử trong set C++ bằng hàm upper_bound
Ngược với hàm lower_bound chính là hàm upper_bound trong C++.
Hàm upper_bound là một hàm thành viên trong class std::set, có tác dụng tìm vị trí phần tử đầu tiên có giá trị lớn hơn giá trị chỉ định trong set.
Chúng ta sử dụng hàm upper_bound trong C++ với cú pháp sau đây:
st.upper_bound(key);
Trong đó key là giá trị của phần tử cần tìm trong set st.
Hàm upper_bound() sẽ trả về trình lặp trỏ đến vị trí phần tử đầu tiên có giá trị lớn hơn giá trị chỉ định. Và nếu không tìm thấy, hàm sẽ trả về trình lặp trỏ đến vị trí cuối cùng trong map.
Bằng cách ứng dụng hàm upper_bound() kết hợp hàm upper_bound() mà Kiyoshi đã hướng dẫn ở trên, chúng ta có thể tìm ra 2 vị trí rồi xuất ra các phần tử có trong phạm vi xác định bởi vị trí đó như ví dụ sau:
|
Kết quả:
1 2 3 4 5 9 |
Đếm số lần xuất hiện của phần tử trong set C++ bằng hàm count
Hàm count là một hàm thành viên trong class std:set, có tác dụng đếm số lần xuất hiện của phần tử trong set C++
Chúng ta sử dụng hàm count trong C++ với cú pháp sau đây:
st.count(val);
Trong đó val
là giá trị của phần tử cần đếm số lần xuất hiện trong set st
.
Do trong set các phần tử là duy nhất, nên một phần tử nếu tồn tại cũng chỉ có xuất hiện 1 lần duy nhất trong set mà thôi.
Do vậy, kết quả trả về của hàm count() cũng chỉ là 0 tương ứng với phần tử không tồn tại, hoặc 1 tương ứng với phần tử tồn tại trong set đó.
Ví dụ cụ thể:
|
Kết quả:
1 |
Tổng kết
Trên đây Kiyoshi đã hướng dẫn bạn về cách tìm phần tử set trong C++ rồi. Để nắm rõ nội dung bài học hơn, bạn hãy thực hành viết lại các ví dụ của ngày hôm nay nhé.
Và hãy cùng tìm hiểu những kiến thức sâu hơn về C++ trong các bài học tiếp theo.
URL Link
https://laptrinhcanban.com/cpp/lap-trinh-cpp-co-ban/set-trong-cpp/tim-va-dem-phan-tu-trong-set-cpp/
HOME › lập trình c++ cơ bản dành cho người mới học lập trình>>22. set trong c++