如果没有从vector继承,我如何得到它的所有typedef?
template <typename T>
class MyStack
{
public:
typename std::vector<T>::reference top()
{
return storage.front();
}
private:
std::vector<T> storage;
};
std::vector<T>::reference
输入太多了。我正在寻找类似迭代器类的东西,除了容器而不是迭代器。但我听说你不允许继承标准容器。
答案 0 :(得分:0)
使用typedef
缩短
typedef std::vector<T>::reference brief_t;
<强> EDITED 强>
您可以从std::
容器继承,但不会因https://stackoverflow.com/a/7110262/149818的原因而推荐它。只是为了让记录更短,选择其中一种方式:
typedef std::vector<T> super_t
并使用super_t::reference
; decltype
:typedef typename decltype( std::vector<T>().size() ) mysize_t;