相关疑难解决方法(0)

在运行时固定大小std :: vector?

性能在我的应用中至关重要

我需要一些工作方式std::experimental::dynarray,所以一个数组的大小是在运行时决定的.

所以我考虑使用包装类std::vector,提供其所有功能,但没有可能调用resize,reservepush_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

c++ vector c++11 c++14

1
推荐指数
1
解决办法
1042
查看次数

标签 统计

c++ ×1

c++11 ×1

c++14 ×1

vector ×1