gpt4 book ai didi

vector - 如何访问 vector *obj 中的变量?

转载 作者:行者123 更新时间:2023-12-04 07:09:20 25 4
gpt4 key购买 nike

我如何从向量中获取我的变量?

我不能使用二元插入运算符或等号运算符。

早些时候,我声明了一个 vector<someStruct> *vObj并分配它,然后返回 vObj并在这个函数中调用它:

vector<sameStruct> firstFunc();

for (unsigned int x = 0; x < v->size(); x++)
{
v[x];
}

当我调试它时, v[x]现在拥有原始向量的全部内容,就像之前没有下标/索引一样。

但我认为我没有做任何事情来取得进步。

我的向量中只有大约 4 个变量;当我调试它时,它有我需要的信息,但我无法获得它。

最佳答案

正如它所写的那样,v 是一个指向结构向量的指针。

当您直接索引到 v 时,您所做的就是指针算术。 v[x] 是位置 x 处的结构向量(假设 v 是一个数组,如果它只是指针末尾的单个对象,则 v[x] for x>0 只是垃圾)。这是因为它不是将 [x] 应用于 v 指向的向量,而是应用于指针 v 本身。

您需要取消引用指针,然后使用以下内容索引向量:

(*v)[x];

此时,您可以引用向量的第 x 个位置的对象,以获取其成员函数/变量,请使用:
(*v)[x].variable;

或者
(*v)[x].memberfunction(parameters);

如果您不想取消引用向量然后访问其中的元素,您可以尝试以下操作:
v->at(x);
v->at(x).variable;
v->at(x).memberfunction;

通过这种方式,您可以以与调用时完全相同的方式访问对象的成员函数:
v->size();

我希望这个对你有用。

关于vector - 如何访问 vector<struct> *obj 中的变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/621159/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com