我写了一个MergeSort
函数,这是它的声明:
void MergeSort(
std::vector<int>::iterator first,
std::vector<int>::iterator last) {
// Get the same size as nums, so we can use some stable iteartors later.
std::vector<int> tmp_vector(last - first);
Sort(first, last, tmp_vector.begin());
std::copy(tmp_vector.begin(), tmp_vector.end(), first);
}
但是,我尝试使用模板,我发现我不知道如何使用first
和last
来创建tmp_vector
,而我只知道{{1}的类型}}:
RandomIterator
据说it is not possible to get the type of the container of the iterators,所以任何想法?谢谢!
答案 0 :(得分:3)
您可以创建迭代器的value_type的向量。这不是原始的容器类型,但它会为您提供所需的临时容器。