gpt4 book ai didi

c++ - 带有结构元素的 std::vector 的大小

转载 作者:行者123 更新时间:2023-11-30 04:37:11 25 4
gpt4 key购买 nike

我在获取具有结构元素的 vector 的正确大小时遇到​​了问题。元素类定义如下(我没有省略任何细节,尽管我认为唯一相关的事实是它是一个包含一个 int 和两个 double 的类):

class Interval
{
public:
Interval(int _i = 0, scalar _l = 0, scalar _r = 0) :
index(_i),
l(_l),
r(_r)
{ }

inline double left(void) const { return l; }
inline double right(void) const { return r; }

inline bool operator < (const Interval & i2) const { return left() < i2.left(); }

public:
int index;
double l;
double r;

};

然后在一个函数中我有这段代码:

std::vector<Interval> arr(10);
int s1 = arr.size();
int s2 = arr.end() - arr.begin();

我得到的s1的值是15,而s2是正确的值10,这是怎么回事? size() 不应该准确返回元素的数量吗?它不应该与 arr.end() - arr.begin() 相同吗?

欢迎任何回复和评论。

最佳答案

首先在格式化代码时停止使用 HTML 标签。请改用 [代码] 按钮。

其次,你所描述的是一个无法解释的谜。您应该在 s1s2 中获得相同的值 - 10。除非您以某种方式设法破坏了其他代码中 vector 的完整性(即您运行的代码不是您向我们展示的代码)。

关于c++ - 带有结构元素的 std::vector 的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4061818/

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