Advertisement
Guest User

Untitled

a guest
Dec 22nd, 2014
145
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.25 KB | None | 0 0
  1. #include <vector>
  2. #include <boost/shared_ptr.hpp>
  3. #include <iostream>
  4. using namespace std;
  5.  
  6.  
  7.  
  8. int main(int argc, char const *argv[])
  9. {
  10. typedef int T;
  11. typedef std::vector<T> content_1d_t;
  12. typedef boost::shared_ptr<content_1d_t> storage_1d_t;
  13. typedef std::vector<storage_1d_t> content_2d_t;
  14. typedef boost::shared_ptr<content_2d_t> storage_2d_t;
  15.  
  16. size_t dim1 = 10;
  17. size_t dim2 = 1;
  18. content_2d_t* content_1 = new content_2d_t();
  19. content_1->reserve(dim2);
  20. storage_2d_t storage_1(content_1);
  21.  
  22. for (int i = 0; i < dim2; ++i)
  23. {
  24. storage_1->push_back(storage_1d_t(new content_1d_t(dim1)));
  25. }
  26.  
  27. //content_2d_t* content_2 = new content_2d_t(dim2);
  28. storage_2d_t storage_2 = storage_1;
  29.  
  30. for (int i = 0; i < dim2; ++i)
  31. {
  32. cout<< "use count before : "<< storage_1->operator[](i).use_count()<<endl;
  33. storage_2->operator[](i) = storage_1->operator[](i);
  34. cout<< "use count after: "<< storage_1->operator[](i).use_count()<<endl;
  35. }
  36.  
  37. for (int i = 0; i < dim2; ++i)
  38. {
  39. cout<< "use count before : "<< storage_1->operator[](i).use_count()<<endl;
  40. storage_1d_t ref = storage_1->operator[](i);
  41. storage_2->operator[](i) = ref;
  42. cout<< "use count after: "<< storage_1->operator[](i).use_count()<<endl;
  43. }
  44.  
  45.  
  46. /* code */
  47. return 0;
  48. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement