typedef std容器?

3 c++ templates typedef

我想做

typedef deque type; //error, use of class template requires template argument list
type<int> container_;
Run Code Online (Sandbox Code Playgroud)

但是这个错误阻止了我.我该怎么做呢?

Éri*_*ant 15

你不能(直到C++ 0x).但它可以用以下方式模拟:

template<typename T>
struct ContainerOf
{
  typedef std::deque<T> type;
};
Run Code Online (Sandbox Code Playgroud)

用作:

ContainerOf<int>::type container_;
Run Code Online (Sandbox Code Playgroud)


Dou*_* T. 8

deque不是一种类型.它是一个模板,用于在给定参数时生成类型.

 deque<int> 
Run Code Online (Sandbox Code Playgroud)

是一种类型,所以你可以这样做

 typedef deque<int> container_
Run Code Online (Sandbox Code Playgroud)