C++ STL中排序算法的研究

Kri*_*Oza 0 c++ stl

从Sort(开始,结束)的使用看来,通过仅指定容器的开始和结束索引,该函数可以对容器进行排序.但我的问题是sort函数如何获得容器的类型.

std::sort(myvector.begin(), myvector.end());
Run Code Online (Sandbox Code Playgroud)

从上面的代码我假设开始和结束索引是发送.为什么推导出矢量类型和矢量名称.

Sho*_*hoe 7

std::sort与许多其他函数一样,该函数<algorithm>不关心容器类型,因为它与概念一起使用.

具体来说,该功能定义为:

template< class RandomIt >
void sort( RandomIt first, RandomIt last );
Run Code Online (Sandbox Code Playgroud)

如您所见,模板用于表示ValueSwappableRandomAccessIterator迭代器的概念.