C++
 Computer >> コンピューター >  >> プログラミング >> C++

C++の出力イテレータとは?基本概念とサンプルコードで解説

本記事では、C++における「出力イテレータ(Output Iterator)」の基本概念と使い方を、実際のサンプルコードとともにわかりやすく解説します。

出力イテレータとは

C++の標準ライブラリには、主に5種類のイテレータが存在し、出力イテレータはそのうちの1つです。出力イテレータは入力イテレータとは正反対の性質を持ち、コンテナへ値を書き込む(代入する)ことはできますが、格納された値を読み取ることはできません。

代表的な出力イテレータとしては、std::ostream_iteratorstd::back_insert_iterator などが挙げられます。

サンプルコード

#include<iostream>
#include<vector>
using namespace std;

int main() {
    vector<int> v1 = {1, 2, 3, 4, 5};

    // イテレータの宣言
    vector<int>::iterator i1;

    // 各要素に値を書き込む(出力イテレータとして使用)
    for (i1 = v1.begin(); i1 != v1.end(); ++i1) {
        *i1 = 1;
    }

    return 0;
}

この例では、vector<int> の各要素に対して *i1 = 1; という形で値を代入しています。これはまさに出力イテレータの典型的な使い方であり、書き込み操作のみを行っています。

実行結果

出力なし(出力イテレータからは値を読み取ることができないため)

まとめ

出力イテレータは「書き込み専用」のイテレータです。*i1 = 値; の形式で要素への代入は可能ですが、x = *i1; のように値を取得しようとするとコンパイルエラーまたは未定義動作となる点に注意が必要です。読み取りと書き込みの両方を行いたい場合は、双方向イテレータや前方イテレータ(Forward Iterator)など、より上位のイテレータを使用するようにしましょう。

  1. C++で学ぶ基本のグラフィックプログラミング入門

    C++は汎用性の高いプログラミング言語です。C++を使えば、基本的な図形の描画、スタイリッシュなフォントによる文字表示、色付けといった初歩的なグラフィックスも作成できます。グラフィックプログラミングは、ターミナルやコマンドプロンプトから直接行うこともできますし、DevC++コンパイラをダウンロードして開発環境を整える方法もあります。graphics.hライブラリのインストールターミナルでグラフィックプログラミングを行う場合は、GCCコンパイラにgraphics.hライブラリを追加する必要があります。以下のコマンドを順番に入力してください。>sudo apt-get install bui

  2. 【C++入門】ストリームクラスの階層構造と入出力の基本を徹底解説

    C++におけるストリームとは C++における「ストリーム」とは、プログラムと入出力(I/O)デバイスの間でやり取りされる文字データの流れを指します。 ストリームクラスは、ファイルや入出力デバイスに対する入出力操作を扱うためのクラス群です。それぞれのクラスが固有の役割を持っており、プログラムの入力・出力を効率的に処理できます。 C++のすべてのストリームクラスは、iostreamライブラリにまとめられています。 まずは、ストリームクラスの階層構造を見てみましょう。 iostreamライブラリの主要クラス iosクラス iosクラスは、すべてのストリームクラスの基底クラス(ベースクラス)です。