gpt4 book ai didi

C++ 何时以及如何使用 std::iterator value_type、引用、指针?

转载 作者:行者123 更新时间:2023-11-28 02:36:38 25 4
gpt4 key购买 nike

我正在为 STL 和 Boost 不可用的环境编写容器和迭代器的集合。在处理迭代器及其返回类型时(例如,通过 GetValue 函数),我在处理容器(例如 Vector)时遇到了一些困难,它可以同时包含值类型和指针类型。它因想要支持 const 迭代器而变得更加复杂。我看过here关于一系列traits的定义:value_type、reference、pointer。我的问题是如何在创建迭代器的上下文中使用它们?本质上,鉴于我想要

Object & Vector<Object>::Iterator::GetValue()
Object * Vector<Object*>::Iterator::GetValue()
const Object & Vector<Object>::ConstIterator::GetValue()
const Object * Vector<Object*>::ConstIterator::GetValue()

value_type、引用、指针如何影响这个?

最佳答案

迭代器的成员类型用处不大。幸运的是,您无需费心定义它们。 std::iterator基类为你做这件事。

template< typename value_type >
struct my_vector_iterator
: std::iterator< std::random_access_iterator_tag, value_type >


template< typename value_type >
struct my_vector_const_iterator
: std::iterator< std::random_access_iterator_tag, value_type const >

关于C++ 何时以及如何使用 std::iterator value_type、引用、指针?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27199779/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com