コード
実装
template<typename iterator>
void print(iterator begin, iterator end) {
for (iterator p = begin; p < end; p++) cout << *p << " ";
cout << endl;
}
使い方
使い方1: vector
vector<int> vec;
// ...
print(vec.begin(), vec.end());
使い方2: 配列
int arr[N];
// ...
print(arr, arr+N);
実行結果
テストコード
int main() {
int array[100];
for (int i=0; i<100; i++) array[i] = i;
print(array, array+100);
}
実行結果
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99
応用
イテレータを渡すので、配列なら例えば array+10
とかをbeginに指定すると 10番目の要素からprintできる。
endの指定についても同様。
int main() {
int array[100];
for (int i=0; i<100; i++) array[i] = i;
print(array+10, array+80);
}
実行結果
10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79
参考
https://qiita.com/yokoto/items/5672ff20b63815728d90
https://qiita.com/mgmk2/items/6f4b78ef3a78c8c928f2