我注意到在内部实现的std::find中有一些令人困惑的东西;他们为什么要这样做?
假设这行代码:
这里发生了什么?为什么他们要相互减去,并使用位移运算符?我不明白他们这样做的原因。(如果这是一个初学者的问题,抱歉。)
假设这行代码:
std::find(begin,end,...)
,那么在文件stl_algobase.h
的内部实现中,第2064行是: typename iterator_traits<_RandomAccessIterator>::difference_type
__trip_count = (__last - __first) >> 2;
这里发生了什么?为什么他们要相互减去,并使用位移运算符?我不明白他们这样做的原因。(如果这是一个初学者的问题,抱歉。)