gpt4 book ai didi

c++ - 奇怪的 vector 初始化问题

转载 作者:行者123 更新时间:2023-11-28 03:58:24 25 4
gpt4 key购买 nike

我最近调试了一个奇怪的 C++ 问题,其中一个新声明的 vector 的大小不知何故为 477218589。这是上下文:

struct Triangle {
Point3 a,b,c;
Triangle(Point3 x, Point3 y, Point3 z) : a(x), b(y), c(z) {}
Vector3 flat_normal() { return (a-c)^(b-c); }
};

vector<Triangle> triangles;

调用 triangles.size() 返回值 477218589。我通过将 struct Triangle 更改为 class Triangle 来“解决”问题,但我想知道为什么会有任何差异。我应该做 typedef struct Foo { ... } Foo; 魔法吗?如果是这样,那为什么会有帮助?

如果重要的话,我使用的是 g++-4.1。

最佳答案

这个

#include <vector>
#include <iostream>

struct Point3 {};

struct Triangle {
Point3 a,b,c;
Triangle(Point3 x, Point3 y, Point3 z) : a(x), b(y), c(z) {}
};

int main()
{
std::vector<Triangle> triangles;

std::cout << triangles.size() << '\n';

return 0;
}

为我打印 0。如果它也适用于您,那么问题出在这段代码中未包含的部分代码中。如果它打印出任何其他内容,则说明您的编译器/std lib/setup 有问题。

关于c++ - 奇怪的 vector 初始化问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2294646/

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