gpt4 book ai didi

c++ - operator++在正向迭代器上做什么

转载 作者:行者123 更新时间:2023-12-02 09:49:30 24 4
gpt4 key购买 nike

据我了解,std::unordered_mapstd::unordered_set使用正向迭代器。

我可以做这样的事情

auto it = unordered_map_instance.begin(); 
it++;

但是我不能做这样的事情
auto it = unordered_map_instance.begin(); 
it = it + 1;

我一直认为 ++只是增加1,但是对于正向迭代器来说似乎不是这样。有人可以解释 ++对正向迭代器有什么作用吗?我似乎无法用谷歌搜索该运算符。 +

最佳答案

如果您从C++标准中引用 [iterator.requirements] ,则iterator需要重载operator++()(对于大多数类型来说,是operator++(int))。这些不要与operator+(int)混淆,这与您的第二个示例等效。 ++运算符而不是与加法运算符相同。

至于operator++()的实际作用,它只是简单地向前移动列表中的一个,即移至下一个元素。例如:

std::map<int,int> map_instance = { { 1,1 }, {2,2}, {3,3} };
auto it = map_instance.begin(); // it points to {1,1}
it++; // now it points to {2,2}

std::advance 可以增加一个以上

关于c++ - operator++在正向迭代器上做什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61391298/

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