我来自std::vector<int>
(我知道我不应该,但我只是想测试它)。现在我可以实例化它并分配一些值:
MyVector v(5);
v[0]=3;
我什至可以返回值:
cout << v[0];
但是,如果我想在类中进行一些操作,如何访问这些值?就像是:
int func(int a){
return this->[0] + a; // EXAMPLE
}
如问题下的评论所述:
返回 (*this)[0] + a; 应该管用。– 迪迪尔克 5 小时前
此外,由于vector
以线性方式(如数组)布置内存,您还可以通过指针访问保存值的内存,如下所示:
int *ptr = &(*this)[0];
// read an integer from the console into the 3rd element of the vector
scanf("%d", ptr + 2);
例如,如果您有 a vector
of chars 并且需要将 a 传递char*
给类似字符串函数的东西,这将很有用。
但是请注意,vector<bool>
其行为方式不同(布尔值内部存储在位域中,而不是布尔数组,请参阅http://isocpp.org/blog/2012/11/on-vectorbool)。