【问题标题】:Does list::insert break the iterators in c++? [duplicate]list::insert 是否会破坏 C++ 中的迭代器? [复制]
【发布时间】:2021-01-23 03:00:54
【问题描述】:

如果我有:

std::list<int> mylist = { 3 };
auto it = mylist.begin();

但我开始做很多补充:

mylist.insert(it, 5); mylist.insert(it, 7);

it 是否有可能被破解? (例如,通过重新定位std::listpush_back 呢?这个其他函数可以使指针无效吗?

【问题讨论】:

    标签: c++ list pointers


    【解决方案1】:

    std::list 没有重新分配; insert 不会使任何迭代器失效,push_back 也是如此。

    没有迭代器或引用无效。

    【讨论】:

    • 那么,如果 std::list 内部只有 2 个空格,那么这些迭代器如何永不中断?
    • std::list内部只有2个空格std::list没有这样的概念,一般实现为双向链表;不是std::vector
    猜你喜欢
    • 2010-09-21
    • 2011-07-13
    • 1970-01-01
    • 1970-01-01
    • 2016-05-03
    • 1970-01-01
    • 1970-01-01
    • 2020-11-21
    • 1970-01-01
    相关资源
    最近更新 更多