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

972 篇文章 329 订阅
73 篇文章 32 订阅

       同学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去重的兼容。 而我调用的时候, 是直接调用的, 所以出错。


       你们负负得正, 搞得我正负得负了, 好吧, 我也只能用负负得正的逻辑了。





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值