Я часто использую векторы в своем программировании, и, как правило, для обхода вектора для существующего значения я использую std :: find как в:
std::vector<int> foo;
std::vector<int>::iterator pos( std::find( foo.begin(), foo.end(), bar );
Это настоящийскука.Итак, я пошел к получению шаблона из std :: vector , чтобы обеспечить метод find :
template<class T>
class foovector : public std::vector<T>
{
public:
typename std::vector<T>::iterator find( const T& value )
{
return std::find( this->begin(), this->end(), value );
}
};
И теперь я могу найти более естественный поиск:
foovector<int> foo;
foovector<int>::iterator pos( foo.find( bar ) );
Мой вопрос заключается в том, что это кажется таким естественным и очевидным расширением вектора, так почему он не является частью STL или даже boost ?Я чувствую, что мне здесь не хватает тайных знаний.