stl vector 的 size 变成了负值
最近在项目中遇到一个问题。在windows 下没问题,gcc编译就会这样子。
简化描述成如下:
一个复杂的类 A 的 vector.(A 里面含有别的好几个类,以及一些vector)
vector<A> vecs;
类似这样子的语句:
A a;
printf("the size of %d before push_back", vecs.size());
vecs.push_back(a);
printf("the size of %d after push_back", vecs.size());
printf("the size of %d after push_back", vecs.size());
//结果是
0
1
-1
谁能解释这个现象呢,谢谢!
另外:
这段程序在windows环境没问题,0,1,1.但是在GCC环境下就 0,1,-1.
为什么 vector的size 变成了 负值呢 ?但是开始是1 ,然后自己变成了-1.求解