派生向量:执行操作
Derived vector: Perform operations
我已经从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;应该工作。- 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>
不会以相同的方式运行(布尔值在内部存储在位域中,而不是一个布尔数组,参见http://isocpp.org/blog/2012/11/on-vectorbool)。 相关文章:
- 对字符数组中的元素执行逐位操作
- 排序时无法执行交换操作.我做的时候它会崩溃.为什么
- C++ 随机数生成器:尝试将结果作为向量获取,但通过制作 void 函数来执行此操作而出现错误
- 对OpenMP reduction子句中的变量执行原子操作
- 无法调用成员函数,尝试正确执行此操作仍然失败
- 不执行任何操作的函数调用C++
- 如何通过使用 2 位或更多数字的 XOR 运算符来执行此操作C++问题
- 这将执行默认移动操作吗?
- 当我告诉它通过控制台执行此操作时,我的c ++循环不会停止
- 如果普通默认构造函数不执行任何操作,为什么我们不能使用 malloc 创建平凡可构造的对象?
- 生成线程并在运行时执行其他操作,只要它处于活动状态
- 如何检测函数是否执行IO操作
- GDI+-无法对Gdiplus::Graphics(C++)执行任何操作
- 可执行文件库加载的操作
- 如何防止GUI挂起,同时允许第二次操作与Qt中的第一次操作一起执行
- 按下Arduino按钮后,如何在C#应用程序上执行操作
- 如何在没有外部库的情况下使用C++03约束执行基于正则表达式的字符串操作
- 在 "CodePad" 中执行链表操作时转储的核心(这是一个在线C++编译器)
- 是否可以访问类数据成员并在析构函数中对它们执行操作?
- 每个操作执行两次