从Sort(开始,结束)的使用看来,通过仅指定容器的开始和结束索引,该函数可以对容器进行排序。但我的问题是sort函数如何获得容器的类型。
std::sort(myvector.begin(), myvector.end());
从上面的代码我假设发送起始和结束索引。为什么推导出矢量类型和矢量名称。
答案 0 :(得分:7)
与<algorithm>
中的许多其他人一样,函数std::sort
并不关心容器类型,因为它适用于 concepts 。
具体来说,该功能定义为:
template< class RandomIt >
void sort( RandomIt first, RandomIt last );
如您所见,模板用于表达ValueSwappable
和RandomAccessIterator
迭代器的概念。
答案 1 :(得分:1)
myvector.begin()/ end()返回类型“containertype :: iterator”
关于sort()如何工作,它实际上并不关心底层容器类型,只要容器中的两个元素具有可比性(该元素存在less<type>()
,或者您指定你自己的比较功能)。