在阅读亚历山大·斯捷潘诺夫的书(Notes On Programming)和正在进行的video-lecture时,我学到了一些关于良好界面对计划影响的惊人事实。
他解释了界面设计是非常重要的部分,它对程序有重大影响。在使用以下STL算法/函数" std :: find_if"设计接口时,他提到了以下几点。
template<class I, class P>
I find_if (I first, I last, P pred) {
while (first!=last) {
if (pred(*first)) return first;
++first;
}
return last;
}
在上文中,他解释说
因此,在分析C ++ STL接口后我学到的主要思想是:
基于以上观点,他提到 std :: copy_n 界面不正确,应该在不久的将来修复
这
template< class InputIt, class Size, class OutputIt >
OutputIt copy_n( InputIt first, Size count, OutputIt result );
要
template< class InputIt, class Size, class OutputIt >
pair<InputIt, OutputIt> copy_n( InputIt first, Size count, OutputIt result );
有人可以解释一下为什么这对于此函数的调用者来说是非常有用的,以获取有关第一个和结果的信息吗?