矢量索引简称

时间:2011-02-14 15:29:43

标签: c++ stl vector

假设我有一个向量

std::vector<a> A;

我可以通过.运算符访问其成员函数,我可以使用[]运算符对其进行索引。如果我有一个指向矢量的指针,例如

std::vector<a> *A;

我可以使用短->运算符访问其成员,但索引非常不方便,即(*A)[i]。如何更整洁地写出来? 注意:我对A->at()不满意,因为它进行边界检查,速度很慢,对我来说速度很重要。

1 个答案:

答案 0 :(得分:16)

如果(*A)[i]出现问题,将其绑定到引用是最简单的方法:

std::vector<a>& ref = *A;
ref[i] = 0; //use reference

通常情况下,我宁愿通过引用而不是指针传递向量,除非你真的想要允许NULL值。