继承标准库类以实现新容器类型的正确方法是什么?
我认为从std :: vector继承并不是完全正确的方法,虽然我不知道它是否真的有效。
我假设std :: vector继承自另一个类,并且我应该继承该类以实现新类型的容器,这是正确的,如果是这样,应该继承什么?
还有什么我需要知道的,例如,我可能需要对std :: iterator对象组进行哪些修改?
答案 0 :(得分:0)
<强> 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 << " ";
}
你可以重载运算符,如果你喜欢这个方法,你可以在这里看到带有
的完整示例类在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> );
...
};