[英]C++ - problems with vector pointers
想象一下,我想用两个当前向量的内容来操作单个向量,例如:
vector<double> b(5),c(5);
vector<double*> point;
for (int i; i<5; i++) point.push_back(new double(b[i]));
for (int i; i<5; i++) point.push_back(new double(c[i]));
这很好,直到这里。 如何操纵这样的向量? 我一直在尝试以下变体:
point[7] = 33.12;
我很确定我遗漏了一些关于参考的东西,因为“点 [7]”将是一个内存地址。
由于这是一个指针vector
,下标运算符返回一个指针:
*point[0] = 33.12; // Assigns new value to the pointer
// Equivalent: *(point[0]), fetch a pointer and dereference it
例如:
vector<double*> point;
double d = 3.14;
point.push_back(&d);
*point[0] = 1.61;
std::cout << *point[0] << std::endl; // Prints 1.61
PS 如对问题的评论所指定,请注意: for
循环中的int i
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.