C++ 要排序或搜索的结构列表(C+;+;)

C++ 要排序或搜索的结构列表(C+;+;),c++,list,search,stl,structure,C++,List,Search,Stl,Structure,我有一个结构列表(结构的参数有name和number(都是字符串类型))。 我需要在列表中搜索用户输入的给定字符串(名称或数字)的所有匹配项。 我尝试使用std::search,但无法做到这一点。 有什么方法可以做到吗?如果我理解,您有一个结构a和一个对象列表a,因此: struct A { string name; int num; } class B { public: list<A>::iterator findName(const string&

我有一个结构列表(结构的参数有name和number(都是字符串类型))。 我需要在列表中搜索用户输入的给定字符串(名称或数字)的所有匹配项。 我尝试使用std::search,但无法做到这一点。
有什么方法可以做到吗?

如果我理解,您有一个结构a和一个对象列表a,因此:

struct A {
  string name;
  int num;
}

class B {
  public:
    list<A>::iterator findName(const string& n) {
      list<A>::iterator it = listOfA.begin();
      for(; it != listOfA.end(); ++it) {
         if((*it).name == n) {
           return it;
         }
      }
      return 0; 
    }
    list<A>::iterator findNum(const int& n) {
      list<A>::iterator it = listOfA.begin();
      for(; it != listOfA.end(); ++it) {
         if((*it).num == n) {
           return it;
         }
      }
      return 0; 
    } 
  private:
    list<A> listOfA;
 }      
结构A{ 字符串名; int-num; } B类{ 公众:
列表。

欢迎使用Stack Overflow!当您询问“我该怎么做”代码问题时,您应该尝试并发布示例代码,演示您遇到的问题以及您尝试过的内容,最好是以a的形式。有关更多帮助,请参阅常见问题解答。使用
std::find
而不是
std::search
。我以后会确定的。kfsone