我无法使用 struct 元素获得正确大小的向量。元素类是这样定义的(我没有省略任何细节,尽管我认为唯一相关的事实是它是一个包含一个 int 和两个双精度值的类):
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() 相同吗?
任何回应和评论表示赞赏。