fork download
  1. #include <iostream>
  2.  
  3. template <typename T, int N>
  4. class array {
  5. public:
  6. array() = default;
  7. array(std::initializer_list<T> list) {
  8. std::copy(std::begin(list), std::end(list), data);
  9. }
  10.  
  11. const T& operator[](int index) const { return data[index]; }
  12. T& operator[](int index) { return data[index]; }
  13.  
  14. int size() const { return N; }
  15.  
  16. const T* begin() const { return data; }
  17. T* begin() { return data; }
  18.  
  19. const T* end() const { return data + N; }
  20. T* end() { return data + N; }
  21.  
  22. private:
  23. T data[N];
  24. };
  25.  
  26. int main() {
  27. array<int, 5> a{1, 2, 3, 4, 5};
  28. int res = 0;
  29. for (auto x : a) {
  30. res += x;
  31. }
  32. std::cout << res << std::endl; // 15
  33. }
Success #stdin #stdout 0s 4392KB
stdin
Standard input is empty
stdout
15