这是我的完整代码:
#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);
^
当我将它放在for循环中时, make_pair
会出现此错误,如果我将其放置,它会完全正常。我哪里错了?
编辑:我正在使用codechef ide ...这些是输入
3
---
-m-
p--
答案 0 :(得分:8)
#define mp make_pair ... int mp = s.find('m'); ... bar = make_pair(pp,i);
您将make_pair
声明为变量,隐藏了该函数。
要解决此问题,请摆脱可怕的宏定义。