继承std::vector实现容器类型



继承标准库类以实现新容器类型的正确方法是什么?

我假设从std::vector继承不是完全正确的方法,尽管我不知道它是否实际工作。

假设std::vector继承自另一个类,并且为了实现新类型的容器,应该继承这个类,这对吗?如果是,应该继承什么?

还有什么我需要知道的吗,例如,我可能需要对std::iterator对象组做什么修改?

从vector

继承的类

Matrix.h

#include <vector>
#include <iostream>
template<typename T>
class Matrix: public std::vector<T>
{
public:
   using std::vector<T>::vector;
private:
};

Matrix.cpp

int main()
{
   Matrix<int> dani;
   dani.push_back(2);
   dani.push_back(3);
   for(const auto& it: dani)
      std::cout << it << " ";
}

包含vector

的类

你可以重载操作符,如果你喜欢这个方法,你可以在这里看到完整的示例类

    <
  • 模板/strong>
  • 矩阵opperations
  • 操作符重载

in github: here

#include <vector>
#include <iostream>
class Vector
{
public:
    Vector();
    Vector(int);
    Vector(int, int);
    ~Vector();
    std::vector<std::vector<T>> v;
    bool Check_Size() ;
    template<typename T1> bool Check_Size(std::vector<T1>&) ;
    template<typename T1> bool Check_Size_Fast(std::vector<T1>&);
    void Print();
    void Transponse();
    void Inverse();
    void Inverse2();
    void Inverse3();

    template<class T,class Q>
    friend std::vector<std::vector<T>> operator* (const Q , Vector<T> );
    ...
};

相关内容

最新更新