我迷失了,我有一个有三个矢量对象的类,
class A
{
vector<int> h1;
vector<double> h2;
vector <int> h3;
}
我希望拥有(继承)所有向量函数(推送,大小等)但是除了“擦除”功能
起初我把对象公之于众,但随后擦除了, 我不知道继承如何使用矢量模板
当我将对象设为私有时...我发现我的自我重载所有向量函数再次为我拥有的每个对象,它也不利于性能,因为将调用2个函数而不是一个,
我的程序中的性能是非常关键的要求,因为每个函数都会进行数千次计算..并且将这个数字加倍并不会对它有好处。
答案 0 :(得分:1)
你太担心表现太快而且在错误的地方。您为A类编写的方法可以内联,以避免函数调用开销 - 这是 tiny ,几乎肯定不值得担心。
此外,你有成分而不是继承。
struct A {
void pop_back() { // example function from vector's interface
h1.pop_back();
h2.pop_back();
h3.pop_back();
}
private:
vector<int> h1;
vector<double> h2;
vector<int> h3;
};
如果您正在对数字序列进行计算量大的计算(std :: vector得到其名称的“数学向量”),请查看Blitz++等库。