首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >迭代器和*迭代器类型

迭代器和*迭代器类型
EN

Stack Overflow用户
提问于 2016-02-03 03:09:22
回答 2查看 51关注 0票数 1

如果我有一个包含未知类容器的迭代器,我是否可以通过以下方式声明一个未知类型的变量:

代码语言:javascript
复制
*Iterator unknown_type_var;

unknown_type有默认的ctor,所以这不是问题所在。但是像这样的方法确实存在吗?或者有没有其他方法来声明一个类型的变量,我有一个容器的迭代器,它保存了这个类型。

EN

回答 2

Stack Overflow用户

发布于 2016-02-03 03:10:23

如果它是一个符合标准的容器,那么它有一个名为value_type的嵌套类型定义函数,该类型定义给出了所包含的值的类型。该类型定义也可以通过iterator_traits:std::iterator_traits<iterator_type>::value_type获得。迭代器类型可以作为容器中的嵌套类型使用。

票数 2
EN

Stack Overflow用户

发布于 2016-02-03 03:13:06

如果你没有可用的value_type,并且你不能使用auto,因为你没有立即赋值(试着找到一种方法),那么你可以使用decltype:

代码语言:javascript
复制
decltype(*declval<Iterator>()) unknown_type_var;
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35161871

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档