2012-03-26 9 views
10

Yeni bir tuhaf hatayla karşılaştım.error C2039: 'find': 'std' öğesinin bir üyesi değil

hata C2039: 'Bul': 'Bul': 'std'

hata C3861 üyesi değildir Temelde

bulunamadı tanımlayıcı, bir dizeye olmadığını bulmak istiyorum

'da bulunabilir. Herhangi bir fikrin nedeni nedir? kod yardımı, std'de bulma yönteminin bulunduğunu söyler.

nedenle bu ne yaptığını temelde:

#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

Hiç bir kullanıcı denediniz mi? Ayrıca, bu kod örneği, sizin kodunuzun geri kalanı yoktu çünkü, compilable değildir. Gelecek için http://sscce.org kod örnekleri göndermeyi deneyin - doğru cevabı vermek çok daha kolaydır. –

cevap

29

std::find<algorithm> başlığında tanımlanır. En başa ekleyin:

#include <algorithm> 
+0

çalışır. Bunun neden oluştuğunu bana verebilir mi? – Rudy

+10

@Rudy C++ standardı std :: find öğesinin başlığında bulunduğundan dolayı. – juanchopanza