标准容器不是多态的,所以你不能覆盖它们的行为; 并且没有受保护的成员,所以没有必要继承它们以扩展它们.
虽然你可以这样做,正如另一个答案所建议的那样,你必须重新实现所有构造函数(或者,自2011年以来,明确地继承它们),因为那些不是继承的; 并且存在某人以多态方式对待它的危险,例如当类不支持时通过指向基类的指针删除.
而是通过在公共接口上运行的非成员函数添加功能:
template <typename T>
void frobnicate(std::vector<T> & v) {for (auto & x : v) frobnicate(x);}
更一般地说,遵循标准库的示例并编写在一般迭代器范围内运行的模板:
template <typename InputIterator>
void frobnicate(InputIterator begin, InputIterator end) {
    while (begin != end) frobnicate(*begin++);
}