gpt4 book ai didi

c++ - 指向包含指向 vector 指针的结构的 vector

转载 作者:行者123 更新时间:2023-11-27 23:47:34 24 4
gpt4 key购买 nike

private:
struct info{
int size = 0;
int key = 0;
int capacity = 1;
std::vector<int*> *value = new std::vector<int*>(capacity);
};

int keyCapacity_;
int size_;
std::vector<info*> *keys_;

在函数中...

//some code
keys_ = new std::vector<info*>(keyCapacity_);
//some code
(*keys_)[size_] = new info;
(*keys_)[size_]->(*value)[size] = inputValue; //getting error on this line
(*keys_)[size_]->size += 1;
(*keys_)[size_]->key = key;

我有一个指向结构信息 vector 的指针。然后在 info 中有一个指向将保存值的 vector 的指针。可能会输入非常大量的数据,并且程序会根据需要调整 vector 的大小。当前输入值被添加到 vector 上的第一个开放点,即 size_。在我上面确定的行中,我收到了一个错误:

a3.hpp:67:20: error: expected unqualified-id before ‘(’ token
(*keys_)[size_]->(*value)[size] = value;
^
a3.hpp:67:22: error: invalid type argument of unary ‘*’ (have ‘int’)
(*keys_)[size_]->(*value)[size] = value;

如何访问此 vector 以更改值?

最佳答案

好吧,*value 不在此上下文中。它在括号中,因此将单独评估。要获得值(value),您需要:

(*keys_)[size_]->value

然后你想取消引用:

 *((*keys_)[size_]->value)

额外的一对括号可能不是必需的,但它使事情变得清晰。然后你想索引:

(*((*keys_)[size_]->value))[size]

我假设 size_size 是正确的,不同的索引。小心你的命名。这种相似性很容易让您感到困惑。

作为旁注,请务必意识到使用 new 几乎从来不是您想要在现代 C++ 中执行的操作。您可能希望改用智能指针。

关于c++ - 指向包含指向 vector 指针的结构的 vector ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49375641/

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