模板函数基本类型:
调用方式和正常函数调用一致。
template <class 类型参数1, class类型参数2, ...>
返回值类型 模板名(形参表)
{
函数体
}
例子:
1.
template<typename T>void//对vector进行排序,并取索引
vector_sort(std::vector<T> vector_input, std::vector<size_t> &idx){
idx.resize(vector_input.size());
iota(idx.begin(), idx.end(), 0);
sort(idx.begin(), idx.end(), [&vector_input](size_t i1, size_t i2) { return vector_input[i1] < vector_input[i2]; });
}
template<typename T>vector<T> //对vector某一段进行复制
RangeCopy(std::vector<T> v, int startIndex, int count)
{
return std::vector<T>(v.begin() + startIndex, v.begin() + count);
}