Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "iostream"
- #include "string"
- #include "sstream"
- #include "vector"
- using namespace std;
- #define all(v) (v).begin(), (v).end()
- #define all_array(v, n) array_begin(v, n), array_end(v, n)
- template <class T>
- T* array_begin(T* ptr, int n) {
- return ptr;
- }
- template <class T>
- const T* array_begin(const T* ptr, int n) {
- return ptr;
- }
- template <class T>
- T* array_end(T* ptr, int n) {
- return ptr + n;
- }
- template <class T>
- const T* array_end(const T* ptr, int n) {
- return ptr + n;
- }
- template <class Iterator, class OutputStream>
- OutputStream& dump(Iterator begin, Iterator end, OutputStream& oss, string sep = " ") {
- if (begin != end) {
- oss << *begin++;
- for (; begin != end; ++begin)
- oss << sep << *begin;
- }
- return oss;
- }
- int main (int argc, char const* argv[]) {
- int numbers[] = {21, 9, 1985};
- vector<int> vi(5, 0);
- for(int i = 0; i < (int)vi.size(); i++) vi[i] = i;
- dump(all_array(numbers, sizeof(numbers) / sizeof(numbers[0])), cout, ", ") << endl;
- dump(all(vi), cout, ", ") << endl;
- return 0;
- }
Add Comment
Please, Sign In to add comment