2017-03-21 9 views
-4

으로 사용할 수 없습니다이 내 전체 코드입니다 : 이것은 내 오류가'make_pair는'함수

#include <iostream> 
#include <vector> 
#include <bits/stdc++.h> 

using namespace std; 
#define ff first 
#define mp make_pair 

#define ss second 


int main(void) { 

    int m; 
    vector <string> grid; 

    cin >> m; 

    pair <int,int> foo; 
pair <int,int> bar; 


// bar =make_pair (10.5,'A'); 
foo = make_pair (1,2); 
cout<<foo.ss<<endl; 
    for(int i=0; i<m; i++) { 
     string s; cin >> s; 
     grid.push_back(s); 
     int pp = s.find('p'); 
     int mp = s.find('m'); 
     if(pp>=0){ 
      bar = make_pair(pp,i); 
     } 
     cout<<pp<<endl; 
    } 
    return 0; 
} 

: 나는 루프의 내부를 배치 할 때

prog.cpp: In function 'int main()': 
prog.cpp:40:32: error: 'make_pair' cannot be used as a function 
      bar = make_pair(pp,i); 
           ^

make_pair이 오류를 제공, 내가 그것을 배치하면 그것은 완벽하게 작동합니다. 내가 어디로 잘못 가고 있니?

편집 : codechef IDE에서 amtrying ... 이들은 당신이 기능을 숨기고, 변수로 make_pair을 선언

+0

당신은 이것을 묻지 않았습니까? 질문을 편집하고 다시 열었을 수 있습니다. –

+0

[재생할 수 없음] (http://ideone.com/9DkTbA) –

+1

@KerrekSB 다시 한번 확인해 주시겠습니까? – MrRobot9

답변

8
#define mp make_pair 
... 
    int mp = s.find('m'); 
... 
     bar = make_pair(pp,i); 

3 
--- 
-m- 
p-- 
입력입니다.

이 문제를 해결하려면 끔찍한 매크로 정의를 제거하십시오.

+1

네,하지만 for 루프 외부에 놓았을 때 결과물을 내고 있었기 때문에 혼란 스러웠습니다. – MrRobot9

+1

@ MrRobot9 "for loop 외부"가 아니라 "변수 범위 밖에"있습니다. 예를 들어, 루프 내에서 변수 정의 앞에 있지만 작동 할 수도 있습니다. – hvd