我确信这已被多次回答,但我不知道如何搜索这个。这是多态吗?超载?
基本上我想要一个矢量,并按我想要的方式修改它的功能或创建新的功能。
例如:我希望push_back()插入一个元素并按降序保持向量。因此,添加将是将元素交换()到其各自的位置。或者我想添加一个新函数pop_front()。
话虽如此,我需要它作为成员函数,例如:
vector<int> x;
x.pop_front();
不
pop_front(x);
这是否曾在实践中完成?我知道我可以使用现有的容器,比如我的例子中的优先级队列,但我宁愿制作完全自定义的函数。
答案 0 :(得分:1)
基本上,std::vector
并非设计为基类,从中继承它通常是一个坏主意。例如,它的dtor不是虚拟的。
在这里使用作文更好。 e.g。
template <typename T>
class MyVector {
private:
std::vector<T> v;
public:
void pop_front() {
// processing on v ...
}
};