将std :: vector <const type * =“”>转换为const std :: vector <t,a =“”>&amp; Vec </t,> </const>

时间:2013-03-14 18:49:11

标签: c++ std

我继承了一些代码,而且我坚持认为应该是一个简单的更新。

我有以下功能

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);

最简单的方法是什么?

1 个答案:

答案 0 :(得分:1)

传递你的矢量:

ArrayRef<const myType*> myArrayRef(myVector);

这有什么理由不适合你吗?