gpt4 book ai didi

c++ - 帮助 std::find

转载 作者:太空宇宙 更新时间:2023-11-04 15:28:52 27 4
gpt4 key购买 nike

我究竟必须用什么来替换 ??? 才能使迭代器 (it) 指向某个元素(例如 Base(2) )?

我尝试了一些镜头但没有,编译器只是说这是错误的。

这是代码

#include <cstdlib>
#include <iostream>
#include <vector>
using namespace std;

class Base
{
public:
Base(int a) {ina = a;}
~Base() {}
int Display() {return ina;}

int ina;
};

int main(int argc, char *argv[])
{
vector<Base> myvector;

for(int i=0 ; i<10 ; i++)
{
myvector.push_back(Base(i));
}

vector<Base>::iterator it;

it = find(myvector.begin(), myvector.end(), ??? );

system("PAUSE");
return EXIT_SUCCESS;
}

提前致谢!

最佳答案

第三个参数就是你要找的值。

it = find(myvector.begin(), myvector.end(), Base(2));

现在的问题是编译器需要知道两个元素是否相等。所以你必须实现一个运算符来进行相等性检查(在 main 和你的类定义之间编写这段代码):

// a equals b if a.ina equals b.ina
bool operator == (const Base& a, const Base& b) {
return a.ina == b.ina;
}

如果只想得到myvector的第n个元素,也可以只写myvector.begin() + n

关于c++ - 帮助 std::find,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/983307/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com