派生矢量:执行操作

时间:2013-05-14 01:56:58

标签: c++ vector

我来自std::vector<int>(我知道我不应该,但我只想测试它)。现在我可以实例化它并分配一些值:

MyVector v(5);
v[0]=3;

我甚至可以返回值:

cout << v[0];

但是如果我想在课堂上做一些操作,我怎么能访问这些值呢?类似的东西:

int func(int a){
   return this->[0] + a; // EXAMPLE
}

1 个答案:

答案 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)。