2012-03-26 50 views
10

Tôi vừa gặp phải một lỗi lạ mà nói rằng tìm không phải là thành viên của std.lỗi C2039: 'find': không phải là thành viên của 'std'

lỗi C2039: 'tìm': không phải là thành viên của 'std'

lỗi C3861: 'tìm': nhận dạng không tìm thấy

Về cơ bản, tôi muốn tìm xem một chuỗi có thể được tìm thấy trong vector

Bất kỳ ý tưởng nào tại sao điều này xảy ra? mã hỗ trợ cho tôi biết rằng có phương pháp tìm trong std.

vì vậy đây là cơ bản những gì tôi đã làm:

#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

Bạn đã thử mọi googling chưa? Ngoài ra, mẫu mã này không phải là compilable, bởi vì tôi không có phần còn lại của mã của bạn. Trong tương lai, hãy thử đăng các mẫu mã http://sscce.org - sẽ dễ dàng hơn khi đưa ra câu trả lời đúng. –

Trả lời

29

std::find được định nghĩa trong <algorithm> tiêu đề. Thêm vào phần đầu:

#include <algorithm> 
+0

hoạt động. Có thể cho tôi lý do tại sao điều này xảy ra không? – Rudy

+10

@Rudy Vì tiêu chuẩn C++ nói std :: find nằm trong tiêu đề . – juanchopanza

Các vấn đề liên quan