【发布时间】:2020-10-09 11:53:42
【问题描述】:
我正在编写将 std::vector 作为私有字段的 MyVector 类。 MyVector 类应该提供 std::vector 的所有成员类型。我怎么解决这个问题?是这样复制它们的正确方法(但它不起作用):
class MyVector{
private:
vector<int> numbers;
public:
using value_type = vector<int>::value_type;
using size_type = vector<int>::size_type;
using iterator = vector<int>::iterator;
using allocator_type = vector<int>::allocator_type;
using difference_type = vector<int>::difference_type;
using reference = vector<int>::reference;
using const_reference = vector<int>::const_reference;
using pointer = vector<int>::pointer;
using const_pointer = vector<int>::const_pointer;
using const_iterator = vector<int>::const_iterator;
using reverse_iterator = vector<int>::reverse_iterator;
using const_reverse_iterator = vector<int>::const_reverse_iterator;
};
【问题讨论】:
-
你可以继承它,虽然这样做不是一个好主意。
-
为什么你认为这行不通?
-
你上课的目的是什么?它应该解决什么潜在的问题?
-
我看到你没有使用
std::vector,所以你必须在某个地方有using namespace std;。请阅读stackoverflow.com/questions/1452721/… -
听起来像XY Problem