gpt4 book ai didi

c++ - 这段 C++ 代码有什么问题?

转载 作者:行者123 更新时间:2023-11-28 05:35:06 25 4
gpt4 key购买 nike

我想使用算法来查找学生分数。我想输入一个数字,如果这个数字在分数中,然后找到姓名和学号,如果没有,我收到它不可用。但是,有一个问题,我找不到。你有什么解决办法吗?谢谢,

#include "stdafx.h"
#include <iostream>
#include<vector>
#include <string>
#include <algorithm>
#define n 3

using namespace std;
class student{
public:
int stno,score,i;
string name;
};


int main(){
int l;
vector<student> my_vector;
for(int i = 0; i < n; i++)
{
student new_student;

cout << "Student Number: ";
cin >> new_student.stno;
cout << "Score: ";
cin >> new_student.score;
cout << "Name: ";
cin >> new_student.name;

my_vector.push_back(new_student);
}

cout<<"which score are you thinking about?=";
cin>>l;

(find(my_vector.begin(), my_vector.end(),[] (student const& scores){
if (scores.score ==l)
cout<<"it is available"<<scores.name<<scores.stno;
else
cout<<"nit available;}));

cin.get();
cin.get();
}

最佳答案

您应该使用 std::find_if,而不是 std::find

您应该根据是否找到数据返回 truefalse。然后可以检查从 std::find_if 返回的迭代器:

auto iter = std::find_if(my_vector.begin(), my_vector.end(),
[] (student const& scores){ return scores.score ==l; });

if ( iter != my_vector.end())
cout<<"it is available"<<(*iter).name<<(*iter).stno;
else
cout<<"not available;

关于c++ - 这段 C++ 代码有什么问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38509090/

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