3

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

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

我什至可以返回值:

cout << v[0];

但是,如果我想在类中进行一些操作,如何访问这些值?就像是:

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

1 回答 1

3

如问题下的评论所述:

返回 (*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 vectorof chars 并且需要将 a 传递char*给类似字符串函数的东西,这将很有用。

但是请注意,vector<bool>其行为方式不同(布尔值内部存储在位域中,而不是布尔数组,请参阅http://isocpp.org/blog/2012/11/on-vectorbool)。

于 2013-05-14T07:11:06.957 回答