继承标准库类以实现新容器类型的正确方法是什么?
我假设从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> );
...
};