而不是使用
std::vector<Object> ObjectArray;
我愿意这样
MyArray<Object> ObjectArray;
保留所有 std::vector 方法。 (如 push_back()、reserve() 等)
但是,使用
typedef std::vector MyArray;
不会工作。我应该改用模板吗?怎么办?
最佳答案
您真正想要的是一个模板化的 typedef。不幸的是,当前版本的 C++ 不支持它们,但它们将添加到 C++0x 中。
目前,这里有一个可能的解决方法:
template<class T> struct My {
typedef std::vector<T> Array;
};
My<Object>::Array ObjectArray
这是否比直接使用 std::vector
更好,我将留给您来决定。
关于c++ - 为模板化类创建类型别名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/544842/