听侯捷大师的视频后写的示例代码,留存以便参考。
#include <vector>
//模板的参数是另一个模板
template<class T,template<class> class Container>
class XC
{
private:
Container<T> c;
public:
XC()
{
for (int i=0;i<10;++i)
{
c.insert(c.end(), T());
}
Container<T> c1(c);
Container<T> c2(std::move(c));
c2.swap(c);
}
void Output()
{
for (auto& i: c)
{
cout << i << " ";
}
cout << endl;
}
};
template <class T>
using Vec = std::vector<T,std::allocator<T>>;
int main(int argc, char* argv[])
{
XC<int,Vec> a;
a.Output();
return 0;
}