0

我有以下设置:

具有静态成员的类,如下所示:
static std::vector<int> m_Some[3];

问题是,我不能m_Some[0].push_back(x)用它。它在's
中触发错误,然后在. 但不知何故,调用堆栈对于进一步的操作是错误的,所以我看不到真正发生的事情。<vector>insert()operator-

如果我 m_Some[0].reserve(1); 以前 push_back做过,
那么我可以做1 push_back,但在第二个中失败了push_back

我完全不知道为什么它不能push_back而且必须reserve首先......
而且我的活动不能push_back超过我的大小reserve

我尝试了一个具有相同类型数组的局部变量push_back,它在.

我正在使用 VS2008 进行编译。

有谁知道为什么?谢谢!

4

1 回答 1

1

你是从另一个 static 的构造函数调用 push_back吗?在哪种情况下,您的向量可能尚未构建?可能不是,但这个问题没有太多要说的。– J99 44 分钟前

也许他正在经历一场静态初始化订单惨败。– akappa 43 分钟前

@J99,是的,我在全局变量的构造函数中调用它......!(在 .cpp 中声明)(但不是静态的)。我认为这是问题所在,我将尝试修改代码并查看结果!– Marson Mao 33 分钟前

@J99 和 akappa:确切的问题是,向量初始化是在我调用构造函数之后......我会尝试解决这个问题。谢谢!!(如何将评论标记为答案?!) – Marson Mao 27 分钟前

@MarsonMao你不能。只需回答您自己的问题并将其标记为已接受 – 又名 8 分钟前

以上就是答案!谢谢您的帮助 :)

于 2012-11-01T11:17:39.730 回答