0

私はいくつかのコードを継承しましたが、単純な更新であると思っていたものに固執しています。

私は次の機能を持っています

template<typename T>
class ArrayRef { 
public:
typedef const T *iterator;
typedef const T *const_iterator;

private:
/// The start of the array, in an external buffer.
const T *Data;

public:
/// Construct an ArrayRef from a std::vector.
template<typename A>
ArrayRef(const std::vector<T, A> &Vec)
: Data(Vec.empty() ? (T*)0 : &Vec[0]), Length(Vec.size()) {}
};

そして、次のように定義されたベクトルをその関数に渡す必要があります。

std::vector<const myType*> myVector(4);

これを行う最も簡単な方法は何ですか?

4

1 に答える 1

1

ベクトルを渡すだけです:

ArrayRef<const myType*> myArrayRef(myVector);

これがうまくいかない理由はありますか?

于 2013-03-14T19:01:00.217 に答える