vector模板类中begin()函数和end()函数怎么写
时间: 2024-05-08 14:17:12 浏览: 90
模板类的书写,模板函数的书写
下面是一个示例代码,展示了如何在vector模板类中实现begin()和end()函数:
```c++
template <typename T>
class vector {
public:
// ...
T* begin() {
return data_;
}
const T* begin() const {
return data_;
}
T* end() {
return data_ + size_;
}
const T* end() const {
return data_ + size_;
}
private:
T* data_;
size_t size_;
// ...
};
```
在上面的代码中,我们定义了一个名为`vector`的模板类,并在其中实现了`begin()`和`end()`函数。`begin()`函数返回指向vector中第一个元素的指针,而`end()`函数返回指向vector中最后一个元素的下一个位置的指针。
注意,我们在代码中提供了两个版本的`begin()`和`end()`函数:一个是非常量版本,返回指向非常量元素的指针;另一个是常量版本,返回指向常量元素的指针。这样做的原因是因为,如果我们有一个常量vector对象,我们只能使用常量版本的`begin()`和`end()`函数来访问其中的元素,而不能使用非常量版本。
阅读全文