gpt4 book ai didi

c++ - 带有结构 vector 的结构

转载 作者:行者123 更新时间:2023-11-30 04:12:39 25 4
gpt4 key购买 nike

抱歉,标题听起来有点困惑,让我解释一下。

我有一个结构,它有一个结构 vector ,如下所示:

struct foo {
int x;
vector < foo > bar;
};

但是当我尝试这个语法时,我得到了一个错误“No Instance of Overloaded Method”:

foo a;
foo b;
b.x = 3;
a.bar.push_back(b);

基本上,我只是想在 ab 之间创建一个“关系”,其中 bar 是包含所有相关的关系 vector foo 的实例。

有什么建议吗?

最佳答案

不幸的是,根据 C++ 标准,您的代码是非法的,因为您将不完整的类型作为模板参数传递给标准库,这通常是被禁止的,并且 std::vector一般规则没有异常(exception)。

Boost 文档 has a great explanation .

您可以像 Boost 那样使用明确支持不完整类型的容器,或者使用 std::vector<std::unique_ptr<foo>> ,因为标准在 20.9.1p5 中说:

The template parameter T of unique_ptr may be an incomplete type.

关于c++ - 带有结构 vector 的结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19747137/

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