看如下代码

1 enum
2
3 {
4
5   Red = 1,
6
7   Green = 2
8
9 }
10
11 struct Apple
12
13 {
14
15   int iType;
16
17   int iWight;
18
19 };
20
21 int main()
22
23 {
24
25   vector<Apple> objApple;
26
27   vector<Apple*>pApple;
28
29   Apple obj1;
30
31   obj1.iType=Red ;
32
33   obj1.iWight = 10;
34
35   objApple.push_back(obj1);
36
37   pApple.push_back(&objApple.back());
38
39   objApple.iType = Green ;
40
41   objApple.iWight = 11;
42
43 objApple.push_back(obj1);
44
45   pApple.push_back(&objApple.back());
46
47   return 0;
48
49 }

恩,以上代码有错误吗?

总结,不要轻易保存vector里面的指针,它会自增长的噢,你不知道它的分配机制的。

解决的办法就是,你首先为vector预分配空间,恩,聪明的vector早已经为了准备好了函数

objApple.reserve(10);

相关文章:

  • 2022-12-23
  • 2021-06-02
  • 2021-12-28
  • 2021-05-25
  • 2022-01-26
  • 2021-06-09
  • 2021-09-22
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2021-07-17
  • 2021-12-26
  • 2021-12-27
  • 2021-09-22
  • 2022-02-25
  • 2022-02-23
相关资源
相似解决方案