確定元素的型別
阿新 • • 發佈:2018-11-07
功能:給定一個容器的型別,能夠給出容器元素的型別。
實現方法(技術):採用區域性特化。
#include <iostream> #include <vector> #include <stack> #include <list> #include <typeinfo> using namespace std; template<typename T> struct ElementT; //base template template<typename T> struct ElementT<vector<T> > { typedef T Type; }; template<typename T> struct ElementT<stack<T> > { typedef T Type; }; template<typename T> struct ElementT<list<T> > { typedef T Type; }; template<typename T> void printElementType(T const& c) { cout << "Container of " << typeid(typename ElementT<T>::Type).name() << " elements." << endl; } int main(int argc, char **argv) { stack<double> s; printElementType(s); vector<float> vf; printElementType(vf); return 0; }
輸出結果:
Container of d elements.
Container of f elements.