gpt4 book ai didi

c++ - 如何创建没有类型名称的迭代器?

转载 作者:太空狗 更新时间:2023-10-29 23:24:38 25 4
gpt4 key购买 nike

例如我有一个 std::map<int, string> _m;我想遍历它。所以我必须写这样的东西:std::map<int, string>::iterator it = _m.begin() .

问题是是否可以在不使用类型名称的情况下创建迭代器。编译器知道 _m 的类型在创建迭代器的那一刻,为什么我需要自己编写这些类型?

更新我忘了说我必须使用旧的 C++ 标准。

最佳答案

您在 auto 关键字之后:

auto it = _m.begin();

Compiler knows the type of _m at the moment of creation of iterator, so why do I need to write those types myself?

是的,这就是导致引入 auto确切逻辑。

如果您不能使用 C++11,您将无法使用 typedef 之类的东西。新标准引入 auto 的全部原因是因为您面临的确切问题 - 一直手动写出长类型名称很尴尬。

typedef std::map<int, string>::iterator map_itr;

map_itr it = _m.begin();

关于c++ - 如何创建没有类型名称的迭代器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29034204/

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