当前位置:  开发笔记 > 编程语言 > 正文

推动矢量矢量

如何解决《推动矢量矢量》经验,为你挑选了1个好方法。

推回矢量矢量有什么问题吗?喜欢

typedef vector Polygon;
vector polys;
polys.push_back(some_poly);

some_poly中的所有元素都会被复制好吗?

我的代码中有一个错误,我似乎无法弄清楚它有什么问题.



1> Johannes Sch..:

对,矢量按预期复制.有一个很好的软件geordi可以显示:

{ 
    using namespace tracked; 
    typedef vector poly_t; 
    poly_t poly(3); // contains 3 B's
    vector v; 
    v.push_back(poly); 
}

它跟踪创建/复制tracked::B.这是输出:

B0* B1*(B0) B2*(B0) B3*(B0) B0~ B4*(B1) B5*(B2) B6*(B3) B4~ B5~ B6~ B1~ B2~ B3~

当我们只跟踪时输出v.push_back:

B4*(B1) B5*(B2) B6*(B3)

如您所见,首先将B0创建为向量构造函数的默认参数.然后将该对象复制到3个B中,然后在构造函数返回时再次销毁B0.poly然后被创建.然后,我们将它推回到多边形向量中.参数poly被复制到一个新的向量中,该向量在多边形向量中创建并由其管理.

如果崩溃,问题可能在于程序的另一部分.检查复制构造函数/构造函数和析构函数是否正常工作,如果使用动态内存分配,则不会删除两次.

推荐阅读
凹凸曼00威威_694
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有