【发布时间】:2022-06-28 23:48:17
【问题描述】:
所以我在创建和使用向量指针时遇到了一些问题。我试图用这些指针解决的问题是引用数据,而不需要过多的代码。这就是我当前定义变量的方式:
// Data vectors
std::vector<int16_t> amountData;
std::vector<float> speedData;
std::vector<int16_t> *pointerr = &amountData; // Should be auto, just testing
我通过代码引用了多次使用的数据,这就是为什么如果我可以只为活动数据(我打算使用的数据)提供一个指针会更容易。我无法让它工作,但使用诸如“*pointerr.size();”之类的命令等等。我得到错误:
request for member 'size' in 'pointerr', which is of pointer type 'std::vector<short int>*' (maybe you meant to use '->' ?)
当使用 '*pointerr->size();' 时,我得到:
invalid type argument of unary '*' (have 'std::vector<short int>::size_type {aka long long unsigned int}')
我知道这可能只是我没有完全理解指针/向量,而且我可能遗漏了一些东西。大多数其他类似的问题并没有真正回答我的问题(据我所知)。我感谢任何形式的帮助/想法等,在此先感谢:)
【问题讨论】:
-
@NateEldredge 给出了答案。
-
两个不同类型的
std::vector声明背后的意图是什么?您将无法让一个指针有时引用其中一个指针,有时又引用另一个指针。指针的类型必须与向量匹配。
标签: c++ pointers vector stdvector