gpt4 book ai didi

c++ - 随机访问迭代器 - 在 C++ 中执行 vector.end() - vector.begin() = vector.size();

转载 作者:太空宇宙 更新时间:2023-11-04 15:44:02 25 4
gpt4 key购买 nike

我想写一些类似下面的代码

class c{
public:
//...
big_structure* find(int e){
auto it = std::lower_bound(v1.begin(), v1.end(), e);
return v2[it - v1.begin()];
}
private:
std::vector<int> v1; //v1 is sorted;
std::vector<big_structure*> v2; //v2.size() = v1.size() + 1
}

这是否合法,而且当 e 不在 v1 中时它会返回 v2[v1.size()] 吗?

如果可能的话,我不想特例它 == v1.end()。

最佳答案

Is this legal, moreover will it return v2[v1.size()] when e is not in v1?

是的。尾后随机访问迭代器可以与来自同一序列的其他迭代器一起用于算术运算,从而给出预期的结果。

关于c++ - 随机访问迭代器 - 在 C++ 中执行 vector.end() - vector.begin() = vector.size();,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19500490/

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