今天复习STL的时候碰到一个小问题,查了一个多小时资料,最后发现是语法错误。。给后来者提个醒。上代码。
#include<iostream>
#include<map>
using namespace std;
int main() {
map<int, int> a;
const int a0[10]= {0,1,2,5,4,7,6,9,13,76};
const int value[10]= {464,64,64553453,463,63,63,46,754,456,4};
int i = 10;
while(i--) {
a.insert(make_pair<a0[i],value[i]>);
}
}
本来想着make_pair输入一个pair的,结果报错: [Error] 'a0' cannot appear in a constant-expression。还有make_pair的第二个参数也报了错。
所以说是传参出现了问题吗?是因为a0不是常量吗?于是楼主把输入的数据修改成const类型如图,结果还是不行。
公布结果:make_pair是一个函数啊喂!!一定不要把pair<>初始化的方法给错用到make_pair()上啊!
我知道这个错误很低级,我有罪😭