vector push_back可能出错

来源:互联网 发布:mac子弹头专柜价格 编辑:程序博客网 时间:2024/05/22 09:49

最近项目上使用vector发现一个错误,在push_back时存储的数据出错。具体见代码:

struct PP    {        int a;        PP(int v)        {            a = v;        }        PP(PP &p)        {            a = - 10;        }    };    class AA    {    public :        int a;        AA(int v)        {            a = v;        }        AA(AA &aa)        {            a = -10;        }    };    int main()    {        std::vector<PP> v;        std::vector<AA> vv;        v.push_back(PP(1));        vv.push_back(AA(1));    }

自己调试时,你会发现存储的数据是-10,原因是在在调用push_back时调用了一次拷贝构造函数。ps 传入是指针时,不会调用拷贝构造函数。

http://bbs.csdn.net/topics/390437292

0 0
原创粉丝点击