同学A调用基础函数, OK. 我调用基础函数,出错! 我的代码如下:
#include <iostream>
#include <string>
#include <vector>
#include <map>
using namespace std;
int basicApi(vector<unsigned int> &v, map<unsigned int, string> &m)
{
vector<unsigned int>::iterator it;
for(it = v.begin(); it != v.end(); ++it)
{
m[*it] = "x";
}
if(v.size() != m.size())
{
return -1;
}
return 0;
}
int main()
{
vector<unsigned int> v;
map<unsigned int, string> m;
v.push_back(1);
v.push_back(1);
cout << basicApi(v, m) << endl; // -1
return 0;
}
同学A调用基础函数OK, 于是我就信任了基础函数, 当时居然没有一点点的怀疑啊。
最后花了较长时间定位, 结果是: 基础函数写得不太好, A同学调用之前做了vector去重的兼容。 而我调用的时候, 是直接调用的, 所以出错。
你们负负得正, 搞得我正负得负了, 好吧, 我也只能用负负得正的逻辑了。