迭代器 std::multimap 和 std::d eque [duplicate]

Iterators std::multimap and std::deque [duplicate]

提问人:Optimus1 提问时间:6/23/2022 最后编辑:EvgOptimus1 更新时间:6/23/2022 访问量:59

问:

请告诉我为什么 - 您可以在迭代器中添加一个“步骤”,但它不适用于?std::dequestd::multimap

#include <iostream>
#include <deque>
#include <map>

int main()
{    
    std::deque<int>my_deq;
    std::deque<int>::iterator iterator_deq;
    iterator_deq = my_deq.begin() + 1;    

    std::multimap<std::string, int>my_multimap;
    std::multimap<std::string, int>::iterator iterator;
    iterator = my_multimap.begin() + 1;       //This is not possible, VS2019 gives an error.    
}
C++ 迭代器 std

评论

2赞 Evg 6/23/2022
std::deque提供随机访问迭代器,并且仅提供双向迭代器。只有随机存取迭代器支持加法,因为只有这些迭代器的加法才能是 O(1) 操作。std::multimap

答: 暂无答案