Skip to content

Commit 3f88711

Browse files
[Term Entry] C++ sets - .find() (#6141)
* Create loss-functions.md * Delete content/pytorch/concepts/nn/terms/loss-functions/loss-functions.md Deleted test file * Create find.md * Update find.md * Update content/cpp/concepts/sets/terms/find/find.md Co-authored-by: Pragati Verma <[email protected]> * Update content/cpp/concepts/sets/terms/find/find.md Co-authored-by: Pragati Verma <[email protected]> * Update content/cpp/concepts/sets/terms/find/find.md Co-authored-by: Pragati Verma <[email protected]> * Review changes ---------
1 parent d3397ee commit 3f88711

File tree

1 file changed

+159
-0
lines changed
  • content/cpp/concepts/sets/terms/find

1 file changed

+159
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,159 @@
1+
---
2+
Title: '.find()'
3+
Description: 'Searches for a specific element in a C++ STL set.'
4+
Subjects:
5+
- 'Computer Science'
6+
- 'Game Development'
7+
Tags:
8+
- 'Algorithms'
9+
- 'Iterators'
10+
- 'Sets'
11+
CatalogContent:
12+
- 'learn-c-plus-plus'
13+
- 'paths/computer-science'
14+
---
15+
16+
The **`.find()`** method in C++ searches for a specific element in a `std::set`. If the element is found, `.find()` returns an iterator pointing to the element; otherwise, it returns an iterator to `set.end()`. This method is part of the Standard Template Library (STL).
17+
18+
It allows efficient lookups in `std::set`, which is typically implemented as a balanced binary search tree. This ensures an average time complexity of **`O(log n)`** for lookups.
19+
20+
## Syntax
21+
22+
```pseudo
23+
std::set<data_type>::iterator it = set_name.find(value);
24+
```
25+
26+
**Parameters:**
27+
28+
- **`set_name`**: The name of the `std::set` being searched.
29+
- **`value`**: The element to search for in the set.
30+
31+
**Return Value:**
32+
33+
- If the element is found, it returns an iterator pointing to the element.
34+
- If the element is not found, it returns an iterator to `set.end()`.
35+
36+
## Examples
37+
38+
### Finding an Element in a Set
39+
40+
The following example demonstrates how to search for an element in a `std::set` and determine whether it exists.
41+
42+
```cpp
43+
#include <iostream>
44+
#include <set>
45+
46+
int main() {
47+
std::set<int> numbers = {10, 20, 30, 40, 50};
48+
int searchValue = 30;
49+
50+
auto it = numbers.find(searchValue);
51+
52+
if (it != numbers.end()) {
53+
std::cout << "Element found: " << *it << std::endl;
54+
} else {
55+
std::cout << "Element not found" << std::endl;
56+
}
57+
58+
return 0;
59+
}
60+
```
61+
62+
The output will be:
63+
64+
```shell
65+
Element found: 30
66+
```
67+
68+
### Checking if a Product Exists in Inventory
69+
70+
This example shows how `.find()` helps determine whether a product ID exists in the inventory.
71+
72+
```cpp
73+
#include <iostream>
74+
#include <set>
75+
76+
int main() {
77+
std::set<int> productIDs = {101, 202, 303, 404, 505};
78+
int searchID = 303;
79+
std::set<int>::iterator it = productIDs.find(searchID);
80+
81+
if (it != productIDs.end()) {
82+
std::cout << "Product ID " << searchID << " is available in inventory."
83+
<< std::endl;
84+
85+
} else {
86+
std::cout << "Product ID " << searchID << " is not in inventory."
87+
<< std::endl;
88+
}
89+
90+
return 0;
91+
}
92+
```
93+
94+
The output will be:
95+
96+
```shell
97+
Product ID 303 is available in inventory.
98+
```
99+
100+
### Searching for Employees in a Company Directory
101+
102+
This example uses `.find()` to search for an employee’s name in a directory, ensuring efficient access to records.
103+
104+
```cpp
105+
#include <iostream>
106+
#include <set>
107+
#include <string>
108+
109+
struct CompareIgnoreCase {
110+
bool operator()(const std::string &a, const std::string &b) const {
111+
return a < b;
112+
}
113+
};
114+
115+
int main() {
116+
std::set<std::string, CompareIgnoreCase> names = {"Alice", "Bob", "Charlie"};
117+
std::string searchName = "Bob";
118+
auto it = names.find(searchName);
119+
120+
if (it != names.end()) {
121+
std::cout << "Name found: " << *it << std::endl;
122+
123+
} else {
124+
std::cout << "Name not found." << std::endl;
125+
}
126+
127+
return 0;
128+
}
129+
```
130+
131+
The output will be:
132+
133+
```shell
134+
Name found: Bob
135+
```
136+
137+
## Codebyte Example
138+
139+
This example demonstrates a simple use of `.find()` in a C++ STL set. It checks for the presence of a specific integer in a set and prints whether the element was found or not.
140+
141+
```codebyte/cpp
142+
#include <iostream>
143+
#include <set>
144+
145+
int main() {
146+
std::set<int> numbers = {100, 200, 300, 400};
147+
int searchValue = 200;
148+
auto it = numbers.find(searchValue);
149+
150+
if (it != numbers.end()) {
151+
std::cout << "Found: " << *it << std::endl;
152+
153+
} else {
154+
std::cout << "Not found." << std::endl;
155+
}
156+
157+
return 0;
158+
}
159+
```

0 commit comments

Comments
 (0)