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

C++のemplace_back()関数とは?dequeの末尾に要素を追加する方法を解説

C++のemplace_back()関数とは

emplace_back()は、C++のSTLコンテナであるdeque(両端キュー)の末尾に新しい要素を挿入するためのメンバ関数です。push_back()と似た機能を持っていますが、emplace_back()はコンテナ内で直接オブジェクトを構築するため、一時オブジェクトの生成やコピーが発生せず、より効率的に要素を追加できる点が特徴です。

構文

dequename.emplace_back(value)

パラメータ

value − dequeの末尾に挿入する要素を指定します。追加する要素のデータ型は、dequeの宣言時に指定した型と一致している必要があります。

使用例

入力: Deque − 11 12 13 14 15

出力: 新しいDeque − 11 12 13 14 15 16

入力: Deque − M O M E N T

出力: 新しいDeque − M O M E N T S

処理の手順

  • まず、dequeを宣言して初期化します。

  • 初期状態のdequeの内容を出力します。

  • emplace_back()関数を呼び出し、末尾に追加する新しい要素を引数として渡します。

  • 要素追加後のdequeの内容を出力します。

この手順に従うことで、dequeの末尾に新しい要素を追加できます。emplace_back()の引数には、dequeと同じデータ型の値を指定する点に注意してください。

サンプルコード

// dequeのemplace_back()関数の動作を示すC++コード
#include <iostream>
#include <deque>
using namespace std;

int main() {
    // dequeの初期化
    deque<int> dq = { 14, 15, 16, 17, 18 };
    
    cout << "Deque: ";
    for (auto x = dq.begin(); x != dq.end(); ++x)
        cout << *x << " ";
    
    // emplace_back()関数で末尾に要素を追加
    dq.emplace_back(19);
    
    // 要素追加後のdequeを出力
    cout << "\nNew deque: ";
    for (auto x = dq.begin(); x != dq.end(); ++x)
        cout << *x << " ";
    
    return 0;
}

出力結果

上記のコードを実行すると、次のような出力が得られます。

入力:14 15 16 17 18
出力:14 15 16 17 18 19

入力:P O I N T
出力:P O I N T S

まとめ

emplace_back()は、dequeの末尾に要素を直接構築しながら追加できる便利な関数です。特に大きなオブジェクトや複雑な型を扱う場合には、push_back()よりもパフォーマンス面で有利になることがあります。dequeへの要素追加処理を実装する際は、ぜひ活用してみてください。

  1. Windowsで使えるC++開発向けおすすめIDE 7選

    ```html 大規模なプロジェクトをプレーンなテキストエディターだけで管理するのは困難です。こうしたケースではIDE(統合開発環境)を使った方が、生産性が向上しストレスも大幅に軽減されます。IDEにはさまざまな種類があり、自分のニーズに合ったものを選ぶことが重要です。ここでは、Windowsで利用できる優れたC/C++向けIDEをご紹介します。 1. Visual Studio Microsoftが開発した定番IDEです。Windows上でのC++プログラムの構築・開発・プロファイリングにおいて、最高クラスのツール群を備えています。豊富なプラグインストアも魅力で、Azure、PowerShe

  2. C++プログラミング言語とは?特徴と基本をわかりやすく解説

    C++は、1979年にベル研究所のビャーネ・ストロヴストルップ(Bjarne Stroustrup)によって開発されたプログラミング言語です。高水準言語と低水準言語の両方の特徴を兼ね備えていることから、「中級言語(ミドルレベル言語)」と位置づけられています。C++はC言語のスーパーセットであり、事実上すべての有効なCプログラムは、そのまま有効なC++プログラムとして扱えます。さらに、WindowsやmacOS、各種UNIXなど、幅広いプラットフォームで動作する点も大きな魅力です。システム開発からゲーム、組み込みソフトウェアまで、多岐にわたる分野で長年活用され続けています。C++の主な言語特性C