C++ 将向量复制到另一个向量时会发生什么
我们是否获得了指针的多个副本,但数据成员仍在共享C++ 将向量复制到另一个向量时会发生什么,c++,boost,vector,C++,Boost,Vector,我们是否获得了指针的多个副本,但数据成员仍在共享 boost::shared_ptr<string> a1(new string("Hello")); vector<boost::shared_ptr<string> > a; a.push_back(a1); vector<boost::shared_ptr<string> > b; b = a; cout<<a[0]->c_
boost::shared_ptr<string> a1(new string("Hello"));
vector<boost::shared_ptr<string> > a;
a.push_back(a1);
vector<boost::shared_ptr<string> > b;
b = a;
cout<<a[0]->c_str()<<b[0]->c_str()<<endl;
a1->append(" World");
cout<<a[0]->c_str()<<b[0]->c_str()<<endl;
输出:
你好
你好世界你好世界是的。但是不要相信我的话,试试看。如果我们不相信,共享的ptr课程有什么意义呢?写了一个快速测试。。你是对的。。我只是想分享这一点,这就是为什么在SO上问这个问题: