2012-03-26 16 views
10

Acabo de encontrar un error raro que dice que find no es miembro de std.error C2039: 'buscar': no ​​es miembro de 'std'

C2039: 'encontrar': no ​​es un miembro de 'STD'

error C3861: 'encontrar': identificador no encontrado

Básicamente, quiero conocer si una cadena se puede encontrar en el vector

¿Alguna idea de por qué sucede esto? la ayuda del código me dice que hay un método de búsqueda en std.

por lo que este es básicamente lo que hice:

#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

¿Has probado googlear? Además, este ejemplo de código no es compilable, porque no tuve el resto de tu código. Para el futuro, intente publicar ejemplos de código de http://sscce.org; es mucho más fácil dar la respuesta correcta. –

Respuesta

29

std::find se define en la cabecera <algorithm>. Agregue al principio:

#include <algorithm> 
+0

funciona. ¿Puede darme la razón por la que esto sucede? – Rudy

+10

@Rudy Porque el estándar de C++ dice que std :: find está en el encabezado . – juanchopanza

Cuestiones relacionadas