c++set集合数组查找
时间: 2023-11-18 19:52:32 浏览: 82
C++中的set集合是一种基于红黑树实现的数据结构,它可以自动对元素进行排序,并且不允许重复元素存在。如果想要在set集合中查找某个元素,可以使用find()函数,该函数返回一个迭代器,指向set中第一个等于该元素的位置,如果没有找到,则返回set.end()。下面是一个示例代码:
```
#include <iostream>
#include <set>
using namespace std;
int main() {
set<int> s;
s.insert(1);
s.insert(2);
s.insert(3);
set<int>::iterator it = s.find(2);
if (it != s.end()) {
cout << "Found!" << endl;
} else {
cout << "Not found!" << endl;
}
return 0;
}
```
相关问题
c++set和vector
C++中的set和vector都是STL(标准模板库)中的容器,用于存储数据。它们的主要区别在于set是一个集合,其中的元素是唯一的且按照一定的顺序排列,而vector是一个动态数组,其中的元素可以重复且按照插入的顺序排列。
以下是C++中set和vector的简单介绍和示例:
1. set的定义和使用
set是一个集合,其中的元素是唯一的且按照一定的顺序排列。set中的元素默认按照升序排列,也可以自定义排序规则。set的常用操作包括插入元素、删除元素、查找元素等。
```c++
#include <iostream>
#include <set>
using namespace std;
int main() {
// 定义一个set
set<int> s;
// 插入元素
s.insert(3);
s.insert(1);
s.insert(4);
s.insert(2);
// 遍历set中的元素
for (auto it = s.begin(); it != s.end(); it++) {
cout << *it << " ";
}
cout << endl;
// 查找元素
auto it = s.find(3);
if (it != s.end()) {
cout << "Found " << *it << endl;
} else {
cout << "Not found" << endl;
}
// 删除元素
s.erase(2);
// 遍历set中的元素
for (auto it = s.begin(); it != s.end(); it++) {
cout << *it << " ";
}
cout << endl;
return 0;
}
```
2. vector的定义和使用
vector是一个动态数组,其中的元素可以重复且按照插入的顺序排列。vector的常用操作包括插入元素、删除元素、查找元素等。
```c++
#include <iostream>
#include <vector>
using namespace std;
int main() {
// 定义一个vector
vector<int> v;
// 插入元素
v.push_back(3);
v.push_back(1);
v.push_back(4);
v.push_back(2);
// 遍历vector中的元素
for (int i = 0; i < v.size(); i++) {
cout << v[i] << " ";
}
cout << endl;
// 查找元素
auto it = find(v.begin(), v.end(), 3);
if (it != v.end()) {
cout << "Found " << *it << endl;
} else {
cout << "Not found" << endl;
}
// 删除元素
v.erase(v.begin() + 1);
// 遍历vector中的元素
for (int i = 0; i < v.size(); i++) {
cout << v[i] << " ";
}
cout << endl;
return 0;
}
```
c++setfind函数
C语言中没有内置的setfind函数。如果你想在C语言中实现查找集合中的元素的功能,可以使用数组或链表来表示集合,并编写自己的查找函数。以下是一个简单的示例,演示如何使用数组实现查找集合中的元素:
```c
#include <stdio.h>
// 在数组中查找元素
int findElement(int arr[], int size, int target) {
for (int i = 0; i < size; i++) {
if (arr[i] == target) {
return i; // 返回元素的索引
}
}
return -1; // 如果未找到,则返回-1
}
int main() {
int arr[] = {1, 2, 3, 4, 5};
int size = sizeof(arr) / sizeof(arr[0]);
int target = 3;
int index = findElement(arr, size, target);
if (index != -1) {
printf("元素 %d 在集合中的索引位置是 %d\n", target, index);
} else {
printf("找不到元素 %d\n", target);
}
return 0;
}
```
上面的代码定义了一个`findElement`函数,它接受一个数组、数组大小和目标元素作为参数。该函数通过遍历数组来查找目标元素,并返回其索引位置。如果目标元素不存在于数组中,则返回-1。在主函数中,我们声明了一个包含一些整数的数组,并调用`findElement`函数来查找目标元素的位置。如果找到了该元素,则打印它在集合中的索引位置;否则,打印找不到该元素的消息。
请注意,这只是一个简单的示例,你可以根据实际需求扩展和修改它。
阅读全文