本文共 1066 字,大约阅读时间需要 3 分钟。
vector v1(3, 10); vector v2(5, 4); vector v3(6, 5); vector v4(7, 8); v2 = v1; v4.assign(v3.begin(), v3.end());
v1.size() = 0;
v2.size() = 3;v2 只是改变了指针位置,指向v1
测试代码:
vector v1(3, 10); vector v2(5, 4); vector v3(6, 5); vector v4(7, 8); qDebug() << "v1.addr: " << &v1 << "\nv2.addr: " << &v2 << "\nv3.addr: " << &v3 << "\nv4.addr: " << &v4; v2 = v1; qDebug() << "V1-size: " << v1.size()<<"v1.addr: "<<&v1; qDebug() << "v2-size: " << v2.size()<< "v2.addr: " << &v2; v4.assign(v3.begin(), v3.end()); qDebug() << "V3-size: " << v3.size() << "v3.addr: " << &v3; qDebug() << "v4-size: " << v4.size() << "v4.addr: " << &v4;
测试结果:
v1.addr: 0x4db3b2f3e0 v2.addr: 0x4db3b2f420 v3.addr: 0x4db3b2f3c0 v4.addr: 0x4db3b2f400V1-size: 3 v1.addr: 0x4db3b2f3e0v2-size: 3 v2.addr: 0x4db3b2f420V3-size: 6 v3.addr: 0x4db3b2f3c0v4-size: 6 v4.addr: 0x4db3b2f400
vector 的重载操作符 = 与 vector的 assign方法一样,都是深拷贝,
即:既没有改变指针指向,也没有清除之前的被操作变量。转载地址:http://mimqf.baihongyu.com/