2012-03-26 5 views
10

Я только что встретил странную ошибку, в которой говорится, что find не является членом std.error C2039: 'find': не входит в 'std'

ошибка C2039: 'найти': не является членом 'Std'

ошибка C3861: 'найти': идентификатор не найден

В принципе, я хочу, чтобы найти ли строки можно найти в векторе

Любая идея, почему это происходит? код помогает мне, что есть метод find в std.

так что это в основном то, что я сделал:

#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

Вы пробовали любой поиск в Интернете? Кроме того, этот пример кода не компилируется, потому что у меня не было остального кода. В будущем попытайтесь опубликовать образцы кода http://sscce.org - гораздо проще дать правильный ответ. –

ответ

29

std::find определяется в заголовке <algorithm>. Добавить в начало:

#include <algorithm> 
+0

Это работает. Могу ли я объяснить, почему это происходит? – Rudy

+10

@Rudy Поскольку стандарт C++ говорит, что std :: find находится в заголовке . – juanchopanza

Смежные вопросы