MrR*_*ot9 -4 c++ std-pair c++14
这是我的完整代码:
#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;
}
Run Code Online (Sandbox Code Playgroud)
这是我的错误:
prog.cpp: In function 'int main()':
prog.cpp:40:32: error: 'make_pair' cannot be used as a function
bar = make_pair(pp,i);
^
Run Code Online (Sandbox Code Playgroud)
make_pair当我把它放在for循环中时会出现这个错误,如果我把它放在外面它会完全正常.我哪里错了?
编辑:我在codechef ide ... ...这些是输入
3
---
-m-
p--
Run Code Online (Sandbox Code Playgroud)
小智 8
Run Code Online (Sandbox Code Playgroud)#define mp make_pair ... int mp = s.find('m'); ... bar = make_pair(pp,i);
您声明make_pair为变量,隐藏了该函数.
解决这个问题,摆脱你可怕的宏定义.