性能在我的应用中至关重要
我需要一些工作方式std::experimental::dynarray,所以一个数组的大小是在运行时决定的.
所以我考虑使用包装类std::vector,提供其所有功能,但没有可能调用resize,reserve或push_back.简而言之,所有改变其大小的方法(如果我错过了其中的一些,请记住我).
所以我开始写这个课:
CCVector.hpp:
template <typename T>
class CCVector{
public:
CCVector(size_t size);
T &operator[](typename std::vector<T>::size_type idx);
private:
std::vector<T> v;
};
Run Code Online (Sandbox Code Playgroud)
CCVector.cpp:
template<typename T>
CCVector<T>::CCVector(size_t size) : v(size){}
template<typename T>
T& CCVector<T>::operator[](typename std::vector<T>::size_type idx){
return v[idx];
}
Run Code Online (Sandbox Code Playgroud)
但我这一点,我认为我必须重新实施我需要的every方法std::vector!例如begin,end,size等等,我不知道如何实现所有的人......此外,这是非常糟糕的维护:当我需要一个新的方法从std::vector我需要在重新实现它CCVector.
所有这些因为我想在运行时使用固定大小的数组.如何在不使用非标准的情况下解决这个问题std::experimental::dynarray?