想了很久,就是想不明白哪里出错了,关于find count函数的,基础代码
程序代码:
#include <iostream> #include<vector> #include<string_view> #include<array> #include<algorithm> using namespace std; struct Man { string_view a{}; int grad{}; }; struct arrayW { vector<Man>arra{};//变成一个数组 }; bool strnum(string_view str) { return (str.find("jk") != std::string_view::npos);//查找字符 } int main() { arrayW arrau;//{1,67,2,34,3,78}; arrau.arra. resize(3); arrau.arra[0]={" kjk",67};//输入数组 arrau.arra[1]={" dfd",671}; arrau.arra[2]={" fdd",673}; for(auto tem:arrau.arra) {cout<<" "<<tem.a<<" "<<tem.grad<<" "; } auto found={find_if(arrau.arra.begin(),arrau.arra.end(),strnum)};//返回发现的结果 auto countnum={count_if(arrau.arra.begin(),arrau.arra.end(),strnum)};//在第几位被发现 if(found==arrau.arra.end())//这里有错误 {cout<<"未识别"; } else { cout<<*found; cout<countnum; } }变成结构体的就有点晕