21xrx.com
2025-03-24 08:21:09 Monday
文章检索 我的文章 写文章
如何在C++中使用set获取元素
2023-06-24 07:42:42 深夜i     --     --
C++ set 获取元素 STL 插入元素

在C++中,set是一个非常有用的容器,它可以存储不重复的元素,并且自动按照元素的值从小到大进行排序。在使用set的时候,经常需要获取其中的元素,本文将介绍如何在C++中使用set获取元素。

首先,我们需要创建一个set容器,并往其中添加一些元素。以下是一个简单的示例代码:

#include <iostream>
#include <set>
using namespace std;
int main() {
  set<int> s;
  s.insert(3);
  s.insert(1);
  s.insert(4);
  s.insert(1);
  s.insert(5);
  return 0;
}

在上面的代码中,我们创建了一个名为s的set容器,并往其中插入了一些元素。注意,我们插入了两个值为1的元素,但是由于set容器只能存储不重复的元素,因此实际上只有一个值为1的元素被存储了。

接下来,我们将介绍如何在C++中使用set获取元素。

1. 使用迭代器获取元素

set容器支持迭代器操作,因此我们可以使用迭代器来遍历set中的元素,并获取它们的值。以下是一个示例代码:

set<int>::iterator it;
for (it = s.begin(); it != s.end(); it++) {
  cout << *it << " ";
}

在上面的代码中,我们使用了一个set ::iterator类型的变量it来遍历set容器中的元素。在每次迭代中,我们通过*it来获取当前迭代器指向的元素的值,并将其输出到控制台上。

2. 使用find()函数获取元素

set容器还提供了一个名为find()的成员函数,该函数可以搜索set中是否包含指定的元素,并返回一个指向该元素的迭代器。如果set中不存在该元素,则返回end()迭代器。以下是一个示例代码:

set<int>::iterator it = s.find(3);
if (it != s.end()) {
  cout << "Found " << *it << endl;
} else
  cout << "Not found" << endl;

在上面的代码中,我们使用了set ::find()函数来搜索set中是否包含值为3的元素。如果找到了该元素,则返回值不等于end()迭代器,我们就可以通过*it来获取该元素的值,并在控制台上输出。否则,就表示set中不存在该元素,我们将输出"Not found"。

通过使用以上两种方法,我们可以在C++中很方便地获取set容器中的元素。需要注意的是,由于set容器是自动排序的,因此我们无法指定获取set容器中的第k个元素,只能通过迭代器或者find()函数来获取指定的元素。

  
  

评论区