std::find_if() 의 세번째 인자를 객체의 멤버 메소드로 할 수 없다.
그렇게 하고 싶으면 boost 를 써야 함.
그렇게 하고 싶으면 boost 를 써야 함.
struct equal_string
{
equal_string(std::wstring& search) : search_(search) {
std::cout << "create equal_string" <<std::endl;
};
bool operator()(std::vector<std::wstring>::value_type& value) {
return (search_.compare(value) == 0);
}
std::wstring search_;
};
int _tmain(int argc, _TCHAR* argv[])
{
if(true) {
std::vector<std::wstring> vec;
vec.push_back(L"1");
vec.push_back(L"2");
vec.push_back(L"3");
vec.push_back(L"4");
std::wstring search = L"3";
std::vector<std::wstring>::iterator it;
it = std::find_if(vec.begin(), vec.end(), equal_string(search));
if (it == vec.end()) {
std::wcout << L"can't find" << std::endl;
} else {
std::wcout << L"finded : " << (*it).c_str() << std::endl;
}
}
}
'C++' 카테고리의 다른 글
InstallShield 로 작성되어 설치된 프로그램 버전 정보 (0) | 2012.02.01 |
---|---|
libcurl + openssl (visual studio 2010, static library) (0) | 2012.01.27 |
현재 프로그램이 사용중인 메모리 사용량 (0) | 2012.01.02 |
IE9 .exe 파일 다운로드 및 실행시 "이 프로그램은 컴퓨터를 손상시킬 수 있습니다." (0) | 2011.10.21 |
boost 설치 (0) | 2011.08.17 |
64bit programming 고려 사항 (0) | 2011.06.10 |
Dependency 관련 (0) | 2011.06.10 |
ActiveX 제작시 고려 사항 - vista, win7, 64 bit (0) | 2011.06.09 |