C++ 对集合使用find()函数

C++ 对集合使用find()函数,c++,iterator,find,set,C++,Iterator,Find,Set,我刚刚在书中遇到了这一章,我真的不明白find()是如何工作的。我试图创建一个简单的函数来检查find()函数是如何工作的,但是我的代码中出现了大量错误 #include <iostream> #include <set> using namespace std; int main() { set<int> setA(1,2); int item; cout << "Enter a number: "; cin >> item

我刚刚在书中遇到了这一章,我真的不明白find()是如何工作的。我试图创建一个简单的函数来检查find()函数是如何工作的,但是我的代码中出现了大量错误

#include <iostream>
#include <set>

using namespace std;

int main()
{

set<int> setA(1,2);


int item;
cout << "Enter a number: ";
cin >> item;

int setIter;
setIter = setA.find(item);
if (setIter != setA.end())
{
  cout << "It's in the list." << endl;
}

return 0;
}
#包括
#包括
使用名称空间std;
int main()
{
集毛(1,2);
国际项目;
cout>项目;
int设置器;
setIter=setA.find(项目);
if(setIter!=setA.end())
{

cout这是您的程序的正确实现

#include <iostream>
#include <set>

using namespace std;

int main()
{
    set<int> setA;
    setA.insert(1);                 // use insert function
    setA.insert(2);
    set<int>::iterator setIter;    // take set iterator

    int item;
    cout << "Enter a number: ";
    cin >> item;

    setIter = setA.find(item);
    if (setIter != setA.end())
    {
      cout << "It's in the list." << endl;
    }

    return 0;
}
#包括
#包括
使用名称空间std;
int main()
{
设置刚毛;
setA.insert(1);//使用insert函数
刚毛插入(2);
set::iterator setIter;//获取集合迭代器
国际项目;
cout>项目;
setIter=setA.find(项目);
if(setIter!=setA.end())
{

cout您的代码有两个问题-第一个是构造函数的使用,另一个是将set.find()返回的set迭代器赋值给int。下面是更正的代码:

#include <iostream> 
#include <set> 

using namespace std; 

int main() 
{ 
    set<int> setA({1,2});

    int item;
    cout << "Enter a number: ";
    cin >> item;

    set<int>::iterator setIter = setA.find(item);

    if (setIter != setA.end())
    {
      cout << "It's in the list." << endl;
    }

    return 0;
} 
#包括
#包括
使用名称空间std;
int main()
{ 
集合setA({1,2});
国际项目;
cout>项目;
set::iterator setIter=setA.find(item);
if(setIter!=setA.end())
{

CUT不能用SETA(1,2)初始化一个集合,两个参数的构造函数需要一个比较器和一个分配器。试试<代码> SET SETA= {1,2};< /C> >如果你不使用一个新的C++编译器,那么它可能不起作用,如果它不需要,你就需要调用插入()