我需要一个以排序顺序存储元素的向量(我也需要恒定时间随机访问,所以不是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:错误:“
std::vector<std::basic_string<char> >::operator==
”中没有与“class std::vector<std::basic_string<char> >
”匹配的成员
有什么建议吗?
答案 0 :(得分:3)
只要它的私人继承,没关系,它在这里的构成大多不那么冗长。
对于==
运算符,您不能使用std::vector::operator==
因为没有运算符,它被定义为自由函数,因此如果需要,您必须自己声明一个< / p>