我需要编写一个容器模板类<T, R>
,其中 T 是一个对象,R 可以是vector<T*>
or list<T*>
。我需要支持像 insert(T) size() 等常见操作...
我持有一个名为T data
列表或向量的类成员。问题是,我如何编写代码,以便在运行时我知道从哪个操作调用std::list
或std::vector
?
例如,要获取容器中的第一个元素,我必须data[0]
在向量情况和data.front()
列表情况下调用。我应该只使用typeid
运算符吗?
if (typeid(R) == typeid(vector<T*>))
then ...
else if (typeid(R) == typeid(list<T*>))
then ...
或者,还有更好的方法 ?