2012-03-26 18 views
10

Ho appena incontrato un errore strano che diceva che find non è un membro di std.errore C2039: 'find': non è un membro di 'std'

errore C2039: 'trovare': non è un membro di 'std'

errore C3861: 'trovare': identificatore non trovato

Fondamentalmente, voglio trovare se una stringa può essere trovato nel vettore

Qualche idea perché questo accade? il code assist mi dice che esiste un metodo di ricerca in std.

quindi questo è fondamentalmente quello che ho fatto:

#include "OperatorUtil.h" 
#include <iostream> 
#include <string> 
#include <stdlib.h> 
#include <math.h> 
#include <sstream> 


using namespace saeConfig; 


namespace operatorUtil 
{ 
    bool isIn(const Filter filter, const SearchKey key) 
    { 

    bool result = false; 


    string dimensionStr = key.dimensions.getValue(filter.getFilterKey()); 
    if(filter.getFilterValues().size()>0) 
    { 
     vector<string> vstr= filter.getFilterValues(); 
     std::vector<string>::iterator it;  // Iterator 
     it = std::find(vstr.begin(), vstr.end(), dimensionStr); //ERROR LINE 
     // Check do we have the object in the queue 
     if(it == vstr.end())  
     {   
      result =true; 
     } 
    } 

    return result; 
    } 
} 
+0

Hai provato qualche google? Inoltre, questo esempio di codice non è compilabile, perché non avevo il resto del codice. Per il futuro prova a postare esempi di codice http://sscce.org - è molto più facile dare la risposta corretta. –

risposta

29

std::find è definito nell'intestazione <algorithm>. Aggiungi all'inizio:

#include <algorithm> 
+0

funziona. Può darmi una ragione per cui questo accade? – Rudy

+10

@Rudy Poiché lo standard C++ dice che std :: find è nell'intestazione . – juanchopanza

Problemi correlati