您如何使用模板化类专门化模板化函数?

时间:2019-12-31 00:19:37

标签: c++ c++11 templates stdvector specialization

所以我有一个模板函数:

template<typename T>
int func(const T& input){
  //do stuff
}

我想使用模板化类(例如std :: vector)来专门化它,就像这样:

template<typename T>
int func(const std::vector<T>& input){
  //do specialised stuff
}

但是我不知道你是怎么做到的。谢谢!

1 个答案:

答案 0 :(得分:1)

只需继续

#include <vector>
#include <iostream>  
using namespace std;

template<typename T>
int func(const vector<T>& a){
    for(auto i: a)         //do specialised stuff
        cout<< (i<<1) <<"\n";
    return 0;

}
int main() {

    vector<int> a={9,8,7};
    func(a);
}

18
16
14

每个数组a乘以2(向左移动一次,<< 1)