您的位置:首页 > 其它

vector push_back可能出错

2017-05-10 14:58 183 查看
最近项目上使用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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: