以下是我的问题
struct point{
int x;
int y;
};
struct OuterStruct
{
std ::vector <point *> pa;
std ::vector <point *> pb;
};
OuterStruct atest; // global variable
现在我的主要是这样做
point n ;
n.x=1;
n.y =2;
atest.pa.push_back(n);
atest.pb.push_back(n);
...
在其他一些函数中,如果我使用这个全局结构,pa,pb的值会丢失,并且它们有一些垃圾值。 我在这里做错了吗。
答案 0 :(得分:0)
更改指针向量:
struct OuterStruct
{
std::vector<point*> pa;
std::vector<point*> pb;
};
进入对象矢量:
struct OuterStruct
{
std::vector<point> pa;
std::vector<point> pb;
};
并且
pa
,pb
,atest
和OuterStruct
并没有多说......)UpperCamelCase
命名类型,则point
- &gt; Point
)为point
创建自定义构造函数以简化其创建:
struct point {
point(int x_, int y_) : x(x_), y(y_) { }
int x;
int y;
};
然后你就可以做到:
atest.pa.push_back(point(1,2));