2 qq 15069267 qq_15069267 于 2016.05.05 10:35 提问

关于C++string的疑惑为什么不输出相同的值

vectorv;
string s = "aaaa";
cout << &s << endl;
string &t = s;
cout << &s<<endl;
v.push_back(s);
t.append("ffff");
cout << &t << endl;
v.push_back(t);
for (auto z = v.begin(); z != v.end(); z++) {
cout << *z<<endl;
}

输出的地址都是相同的,但是值输出不同,他们的地址都相同那么都是同一个值输出才对啊,这是我的一点小问题

3个回答

caozhy
caozhy   Ds   Rxr 2016.05.05 10:51
已采纳

说明push_back是深拷贝,拷贝的值。

chenjh1234
chenjh1234   2016.05.05 11:34

push_back,是值拷贝。

chenjh1234
chenjh1234   2016.05.05 11:34

push_back,是值拷贝。

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!