Guest User

Untitled

a guest
Apr 19th, 2018
71
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.06 KB | None | 0 0
  1. #include "iostream"
  2. #include "string"
  3. #include "sstream"
  4. #include "vector"
  5. using namespace std;
  6.  
  7. #define all(v) (v).begin(), (v).end()
  8. #define all_array(v, n) array_begin(v, n), array_end(v, n)
  9.  
  10. template <class T>
  11. T* array_begin(T* ptr, int n) {
  12. return ptr;
  13. }
  14. template <class T>
  15. const T* array_begin(const T* ptr, int n) {
  16. return ptr;
  17. }
  18.  
  19. template <class T>
  20. T* array_end(T* ptr, int n) {
  21. return ptr + n;
  22. }
  23. template <class T>
  24. const T* array_end(const T* ptr, int n) {
  25. return ptr + n;
  26. }
  27.  
  28. template <class Iterator, class OutputStream>
  29. OutputStream& dump(Iterator begin, Iterator end, OutputStream& oss, string sep = " ") {
  30. if (begin != end) {
  31. oss << *begin++;
  32. for (; begin != end; ++begin)
  33. oss << sep << *begin;
  34. }
  35. return oss;
  36. }
  37.  
  38. int main (int argc, char const* argv[]) {
  39. int numbers[] = {21, 9, 1985};
  40. vector<int> vi(5, 0);
  41. for(int i = 0; i < (int)vi.size(); i++) vi[i] = i;
  42. dump(all_array(numbers, sizeof(numbers) / sizeof(numbers[0])), cout, ", ") << endl;
  43. dump(all(vi), cout, ", ") << endl;
  44. return 0;
  45. }
Add Comment
Please, Sign In to add comment