gpt4 book ai didi

c++ - 我可以用 null 初始化一个迭代器,如果不能,为什么?

转载 作者:行者123 更新时间:2023-12-03 17:49:01 24 4
gpt4 key购买 nike

我正在尝试将迭代器初始化为 NULL ,但它不起作用。谁能帮我?

如果一个指针可以用 null 初始化,为什么我们不能对迭代器这样做呢?

vector<int> bob;
vector<int>::iterator it=NULL;

我想在类构造函数中初始化一个迭代器,以便在创建类的对象时,迭代器应设置为 NULL (默认)。

最佳答案

不,通常你不能用 NULL 初始化迭代器.迭代器要求不要求迭代器可从整数类型或 std::nullptr_t 赋值或初始化。 , NULL 的可能类型可以有。

尝试这样做是没有意义的。它根本不需要。但是由于您没有解释为什么要尝试这样做,因此我无法真正提出任何进一步的建议。

关于您在评论中的进一步问题:您可以对每个前向迭代器进行值初始化:

vector<int>::iterator it{}; // value-initialized

从 C++14 开始,您可以保证比较以这种方式构造的相同类型的迭代器比较相等。

所有容器迭代器都是前向迭代器。

关于c++ - 我可以用 null 初始化一个迭代器,如果不能,为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59998401/

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