Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/127.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 包含指向向量指针的结构的指向向量指针_C++_Pointers_Vector_Struct - Fatal编程技术网

C++ 包含指向向量指针的结构的指向向量指针

C++ 包含指向向量指针的结构的指向向量指针,c++,pointers,vector,struct,C++,Pointers,Vector,Struct,如何访问此向量以更改值?(*keys)[size\uz] 这个是对的 (*键)【大小】->(*值)【大小】 但这个不是。看起来你在调用(*value)[size],这毫无意义。这是一个语法错误 因此,您必须首先调用该值,然后将其作为一个整体取消引用。像这样(*键) 之后,您现在可以访问它的索引和其中的对象 (*((*键)[大小]->值])[size]=&value(*键)[大小] 这个是对的 (*键)【大小】->(*值)【大小】 但这个不是。看起来你在调用(*value)[size],这毫无意义

如何访问此向量以更改值?

(*keys)[size\uz]
这个是对的

(*键)【大小】->(*值)【大小】
但这个不是。看起来你在调用(*value)[size],这毫无意义。这是一个语法错误

因此,您必须首先调用该值,然后将其作为一个整体取消引用。像这样
(*键)

之后,您现在可以访问它的索引和其中的对象

(*((*键)[大小]->值])[size]=&value

(*键)[大小]
这个是对的

(*键)【大小】->(*值)【大小】
但这个不是。看起来你在调用(*value)[size],这毫无意义。这是一个语法错误

因此,您必须首先调用该值,然后将其作为一个整体取消引用。像这样
(*键)

之后,您现在可以访问它的索引和其中的对象


(*((*键)[大小]->值])[size]=&value

好吧,
*值在本文中不在范围内。它在括号中,因此将单独计算。要实现价值,您需要:

int size = yourSize;
(*((*keys_)[size_]->value))
然后你想取消对它的引用:

(*keys_)[size_]->value
额外的一组参数可能是没有必要的,但它让事情变得清楚了。然后,您要为其编制索引:

 *((*keys_)[size_]->value)
我假设
size
size
是正确的,不同的指数。小心你的名字。这种相似性很容易把你绊倒


作为一个旁注,请认识到使用<代码>新< /C>几乎不是你在现代C++中想要做的。您可能希望改用智能指针。

嗯,
*值在本上下文中不在范围内。它在括号中,因此将单独计算。要实现价值,您需要:

int size = yourSize;
(*((*keys_)[size_]->value))
然后你想取消对它的引用:

(*keys_)[size_]->value
额外的一组参数可能是没有必要的,但它让事情变得清楚了。然后,您要为其编制索引:

 *((*keys_)[size_]->value)
我假设
size
size
是正确的,不同的指数。小心你的名字。这种相似性很容易把你绊倒


作为一个旁注,请认识到使用<代码>新< /C>几乎不是你在现代C++中想要做的。您可能想改用智能指针。

行的快速修复方法是:
(*((*keys)[size\u]->value])[size]=inputValue

但说真的,不要使用C风格的指针。将您的代码改为:

(*((*keys_)[size_]->value))[size]
private:
结构信息{
int size=0;
int键=0;
int容量=1;
std::向量值;
}
int键容量;
int-size_389;;
向量键;
在这一职能中:

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

    int keyCapacity_;
    int size_;
    std::vector<std::unique_ptr<info>> keys_;
//一些代码
调整键大小(键容量);
//一些代码
keys_u[size_u]=std::make_unique();
键[size]->value[size]=输入值;
键[size]->size+=1;
键\[size \->key=key;
由于您没有给出完整的示例,我不能完全确定,但代码在我看来仍然是错误的,因为您似乎试图写入大小为0的向量。从我看来这应该行得通,但我认为这只是一种猜测:

//some code
keys_.resize(keyCapacity_);
//some code
keys_[size_] = std::make_unique<info>();
keys_[size_]->value[size] = inputValue;
keys_[size_]->size += 1;
keys_[size_]->key = key;
//一些代码
调整键大小(键容量);
//一些代码
keys_u[size_u]=std::make_unique();
按键\[size \]->value.向后推\(inputValue);
键[size]->size+=1;
键\[size \->key=key;

您的线路的快速修复方法是:
(*((*keys)[size\u]>value])[size]=inputValue

但说真的,不要使用C风格的指针。将您的代码改为:

(*((*keys_)[size_]->value))[size]
private:
结构信息{
int size=0;
int键=0;
int容量=1;
std::向量值;
}
int键容量;
int-size_389;;
向量键;
在这一职能中:

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

    int keyCapacity_;
    int size_;
    std::vector<std::unique_ptr<info>> keys_;
//一些代码
调整键大小(键容量);
//一些代码
keys_u[size_u]=std::make_unique();
键[size]->value[size]=输入值;
键[size]->size+=1;
键\[size \->key=key;
由于您没有给出完整的示例,我不能完全确定,但代码在我看来仍然是错误的,因为您似乎试图写入大小为0的向量。从我看来这应该行得通,但我认为这只是一种猜测:

//some code
keys_.resize(keyCapacity_);
//some code
keys_[size_] = std::make_unique<info>();
keys_[size_]->value[size] = inputValue;
keys_[size_]->size += 1;
keys_[size_]->key = key;
//一些代码
调整键大小(键容量);
//一些代码
keys_u[size_u]=std::make_unique();
按键\[size \]->value.向后推\(inputValue);
键[size]->size+=1;
键\[size \->key=key;