您的位置:首页 > 其它

不要过分相信基础函数, 因为那也是人写的------警惕负负得正的现有逻辑之坑

2016-11-19 00:11 309 查看
       同学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去重的兼容。 而我调用的时候, 是直接调用的, 所以出错。

       你们负负得正, 搞得我正负得负了, 好吧, 我也只能用负负得正的逻辑了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐