요소에 벡터가 있는지 확인하기 위해 매크로를 사용하는 코드 조각이 있습니다. 컴파일에 오류 다음 부여합니다어떤 컨테이너에서 어떻게 매크로 작업을 할 수 있습니까?
#define x.contains(a) x.find(a)!=x.end()
void main(){
vector<int> v = {1,2,3,4};
if(v.contains(2))
cout<<"yes"<<endl;
else
cout<<"no"<<endl;
}
그러나 :
ISO C++11 requires whitespace after the macro name #define x.contains(a) x.find(a)!=x.end()
나에게 방법을 보여주십시오. 감사합니다. .
가 _ "밖으로 나에게 방법을 보여주십시오."_ 사용 템플릿 기능을하지 매크로. 매크로는 결코 답이 될 수 없습니다. (* 가끔은 의미하지 않지만 사용자의 99.999 %는 사용하지 않습니다.) –
매크로를 사용하면 처음에는 좋지 않습니다. 적절한 기능을 작성하십시오. –
그런 매크로를 통해 클래스에 멤버를 추가 할 수 없습니다. 그리고 매크로를 일반적으로 피해야합니다. 간단한 템플릿으로 된'inline' 함수가 훨씬 더 좋을 것입니다. –