我正在创建一个模板类,其中包含一个列表对象作为私有(private)成员:
.
.
.
private:
list<E> listObject;
};
第一个构造函数必须创建一个容量为 10 的列表对象。你会怎么做?
template<class T, class E>
Queue<T,E>::Queue()
{
listObject.resize(10);
}
或
template<class T, class E>
Queue<T,E>::Queue()
{
listObject = new list<E>(10);
}
或任何其他想法?
最佳答案
最惯用的选项是初始化所需大小的列表。这是在构造函数初始化列表中完成的:
Queue<T,E>::Queue() : listObject(10)
{
....
}
这将为您留下 10 个默认构造对象的列表(您是否真的需要它是另一回事)。
请注意,在 C++11 中,您可以在声明时初始化数据成员。所以你也可以这样做:
template <typename T, typename E> Queue
{
....
list<E> listObject = list<E>{10};
};
更多关于 std::list
here .
关于c++ - 在 C++ 中创建一个具有初始容量的列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19762755/