0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

[C++] 配列でもvectorでも使える汎用print関数

Last updated at Posted at 2023-01-22

コード

実装
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

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?