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