效率与规范,怎么取舍
效率与规范,如何取舍
一个函数,输入两个map作为参数,然后输出一个结果
这是函数标准的声明方式,但在实现的时候发现,如果mRight是允许修改的(如,每查找到一个,就从mRight里erase一个),事情会简单很多,如果为了方便,可以在check函数里面复制一个可以修改mRight出来,但这样效率就低了.
有什么好的办法呢?
------解决思路----------------------
简单,map仍然用const引用传(保证规范)
传进来之后,把map的key传给一个set容器,这样即保证"能修改",也不会拷贝太多的东西.
这样,在set里做erase的事情.map继续做查值.
一个函数,输入两个map作为参数,然后输出一个结果
void check(const map<>& mLeft, const map<>& mRight, vector<>& result)
这是函数标准的声明方式,但在实现的时候发现,如果mRight是允许修改的(如,每查找到一个,就从mRight里erase一个),事情会简单很多,如果为了方便,可以在check函数里面复制一个可以修改mRight出来,但这样效率就低了.
有什么好的办法呢?
------解决思路----------------------
简单,map仍然用const引用传(保证规范)
传进来之后,把map的key传给一个set容器,这样即保证"能修改",也不会拷贝太多的东西.
这样,在set里做erase的事情.map继续做查值.