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上问这个问题: