fork download
  1. #include <iostream>
  2. #include <vector>
  3. #include <numeric>
  4.  
  5. class hoge {
  6. public:
  7. int *a;
  8. int size;
  9. hoge(int a[], int size) : a(a), size(size) {}
  10. int sum() {
  11. int s = 0;
  12. for (int i = 0; i < size; i++)
  13. s += a[i];
  14. return s;
  15. }
  16. };
  17.  
  18. template <class T>
  19. class hoge2 {
  20. const std::vector<T>& a;
  21. public:
  22. hoge2(const std::vector<T>& v) : a(v) {}
  23. int sum() {
  24. return std::accumulate(std::begin(a), std::end(a), 0);
  25. }
  26. };
  27.  
  28. int main()
  29. {
  30. std::vector<int> a = { 1, 2, 3 };
  31. std::vector<int> a2 = a;
  32.  
  33. hoge huga(&a2[0], a.size());
  34. std::cout << huga.sum() << std::endl;
  35. a2.push_back(4);
  36. std::cout << huga.sum() << std::endl;
  37.  
  38. a2 = a;
  39.  
  40. hoge2<int> huga2(a2);
  41. std::cout << huga2.sum() << std::endl;
  42. a2.push_back(4);
  43. std::cout << huga2.sum() << std::endl;
  44. }
  45.  
Success #stdin #stdout 0s 3468KB
stdin
Standard input is empty
stdout
6
5
6
10