我已经为自定义库实现了一个random_access_iterator(它被模板化为可以作为const迭代器和非const迭代器重用),但它在执行像{{1}这样的操作时会导致内存泄漏(std::sort(container.begin(), container.end()
返回container.begin()/end()
个实例。
我的实施有什么问题?
iterator
答案 0 :(得分:1)
不知道是否会导致内存泄漏,而是这两个运营商
self_type operator+(difference_type value) {
ptr_ += value;
return *(this);
};
self_type operator-(difference_type value) {
ptr_ -= value;
return *(this);
};
应该只返回一个新的迭代器,而不是更新存储的ptr_
。
另外,
中存在拼写错误 self_type operator++(int) {
self_type temp(*this);
--(*this);
return (temp);
}
让它走向错误的方向。这可能会混淆一些循环。