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


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






本文转载:CSDN博客