c++ - 派生 vector : Perform operations

标签 c++ vector

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

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

我什至可以返回值:

cout << v[0];

但是如果我想在类中进行一些操作,我该如何访问值呢?像这样的东西:

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

最佳答案

如问题下的评论所述:

return (*this)[0] + a; should work. – didierc 5 hours ago

此外,由于 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 值在内部存储在位域中,而不是 bool 数组,请参阅 http://isocpp.org/blog/2012/11/on-vectorbool )。

关于c++ - 派生 vector : Perform operations,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16533976/

相关文章:

c++ - 在 C++ 中更改参数名称时的二进制兼容性

c++ - 如何管理需要从递归仿函数/lambda 派生的模板参数的声明?

c++ - GCC 内联汇编中的标签

java,无法在 vector 中添加元素(大小0)

javascript - 根据方向和距离(向量)获取点坐标

c++ - 从 Vector 中删除 unique_ptr 并将它们用作新 Struct 的参数

c++ - 声明数组时 VS2008 错误预期常量表达式,但 GCC 中此代码没有错误

c++ - 类成员函数号的作用

C++ 从 *.txt 文件读取数据到结构 vector

c++ - 如何以一种很好的方式生成 vector 的 vector ?