Trong bài viết này, chúng ta sẽ thảo luận về hàm set::find() trong C++ STL, cú pháp, cách hoạt động và giá trị trả về.
Set trong C++ STL là gì?
Set trong C++ STL là container chứa các phần tử duy nhất theo thứ tự chung. Set bắt buộc các phần tử duy nhất vì giá trị của phần tử xác định bản thân phần tử. Một khi đã thêm giá trị vào set container thì sau đó không thể sửa đổi, tuy nhiên vẫn có thể xóa hoặc thêm giá trị vào set. Set được sử dụng như cây tìm kiếm nhị phân.
set::find() là gì?
find() là hàm built-in trong C++ STL, được định nghĩa trong header <set>. Hàm dùng để tìm một phần tử hoặc giá trị trong set container. find() trả về iterator trỏ đến vị trí của phần tử cần tìm. Nếu phần tử không có trong set, hàm trả về iterator trỏ đến vị trí ngay sau phần tử cuối cùng của set container.
Cú pháp
Set1.find(const type_t& element);
Tham số
Hàm nhận một tham số: phần tử cần tìm.
Giá trị trả về
Trả về iterator trỏ đến phần tử cần tìm.
Ví dụ
Input: set<int> myset = {10, 20, 40, 80, 90}; myset.find(40); Output: element found
Ví dụ hoàn chỉnh 1
#include <bits/stdc++.h>
using namespace std;
int main() {
set<int> mySet;
mySet.insert(10);
mySet.insert(20);
mySet.insert(90);
mySet.insert(80);
mySet.insert(40);
auto temp = mySet.find(40);
cout << "Elements after 40 are: ";
for (auto i = temp; i != mySet.end(); i++)
cout << *i << " ";
return 0;
}
Kết quả
Elements after 40 are: 40 80 90
Ví dụ hoàn chỉnh 2
#include <iostream>
#include <set>
int main() {
std::set<int> mySet;
std::set<int>::iterator i;
for (int i = 1; i <= 4; i++)
mySet.insert(i * 2);
i = mySet.find(6);
mySet.erase(i);
mySet.erase(mySet.find(4));
std::cout << "elements are : ";
for (i = mySet.begin(); i != mySet.end(); ++i)
std::cout << ' ' << *i;
std::cout << '\n';
return 0;
}
Kết quả
Elements are : 2 8