gpt4 book ai didi

c++ - vector 的结束迭代器内容

转载 作者:太空宇宙 更新时间:2023-11-03 10:46:43 25 4
gpt4 key购买 nike

关于以下示例,我有 2 个问题:1)

std::vector<int> v(5,1);
cout << *v.end();

打印结果是否未定义(取决于编译器)

2)

int x = 5,y = 6;
std::vector<int*> pv;
pv.push_back(&x);
pv.push_back(&y);
cout << *pv.end();

打印结果是未定义的(取决于编译器)还是NULL

最佳答案

end() 处没有项目,它是 vector 中最后一个有效项目之后的迭代器。

*v.end();

这是未定义的行为。您可以使用 end() 来比较迭代器是否指向最后一项之后的项。

访问最后一项的值的简单方法是 back() ,例如:

cout << v.back();

关于c++ - vector 的结束迭代器内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19744771/

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