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