0
我需要一个存储排序顺序的元素的向量(我也需要恒定时间的随机访问,所以不需要std::set
)。我试图通过私下继承std::vector
来实现这一点。向量的私有继承,暴露相等运算符
template <typename T, typename Tcomp = less<T> >
class SortedVector : private vector<T> {
Tcomp _comparator;
public:
using vector<T>::operator[];
using vector<T>::operator==;
using vector<T>::size;
我有几个问题:
- 它是一个坏主意,继承
std::vector
私下? - 我得到以下错误:
SortedVector.h:26:30: error: no members matching ‘
std::vector<std::basic_string<char> >::operator==
’ in ‘class std::vector<std::basic_string<char> >
’
有什么建议?
你真的需要* *'运算符=='在矢量上?如果是这样,写你自己的并不难。 –
我确实需要它,是的,这并不困难,但我无法弄清楚为什么会出现这种错误。 – SPMP
对于std :: vector,'operator ==()'是一个非成员函数。 – comingstorm