はじめに
C++でプログラミングをしていると、「キーと値」「姓と名」「x座標とy座標」のように、常に対(ペア)で扱いたい2つのデータが出てくることがあります。この目的のために、C++の標準ライブラリ <utility> には、std::pair という便利なクラステンプレートが用意されています。
std::pair を使えば、2つの値を一つの変数として、関数の引数や戻り値、コンテナの要素として手軽に扱うことができます。特に std::map の要素は、内部的に std::pair として格納されています。
この記事では、std::pair の基本的な使い方(生成、値の変更、要素へのアクセス)を解説します。
std::pair を使ったサンプルコード
このコードは、int(ID)と string(名前)をペアで保持する pair を作成し、その値を変更したり、個々の要素を取り出して表示したりする方法を示します。
完成コード
#include <iostream>
#include <utility> // pair, make_pair を使うために必要
#include <string>
using namespace std;
int main() {
// 1. pairの生成 (コンストラクタで初期化)
pair<int, string> user_data(101, "佐藤");
// 2. .first と .second で各要素にアクセス
cout << "--- 初期値 ---" << endl;
cout << "ID: " << user_data.first << endl;
cout << "名前: " << user_data.second << endl;
// 3. make_pairで新しいpairを作成し、代入
user_data = make_pair(202, "鈴木");
cout << "\n--- 値を変更後 ---" << endl;
cout << "ID: " << user_data.first << endl;
cout << "名前: " << user_data.second << endl;
// C++17以降の構造化束縛を使うと、より便利に分解できる
auto [id, name] = user_data;
cout << "\n--- 構造化束縛 ---" << endl;
cout << "ID: " << id << ", 名前: " << name << endl;
return 0;
}
コードの解説
1. pair の生成
pair<int, string> user_data(101, "佐藤");
std::pairを使うには、< >の中に、ペアにしたい2つのデータ型を順番に指定します。- コンストラクタの引数に、それらの型に対応する初期値を渡すことで、オブジェクトを生成できます。
2. std::make_pair
user_data = make_pair(202, "鈴木");
std::make_pairは、引数として渡された2つの値から、対応する型のpairオブジェクトを自動で生成して返すヘルパー関数です。pair<int, string> p = {202, "鈴木"};のように、初期化子リストを使うこともできます。
3. 要素へのアクセス (.first, .second)
pair の各要素にアクセスするには、メンバ変数 .first と .second を使います。
.first: 1番目の要素にアクセスします。.second: 2番目の要素にアクセスします。
まとめ
今回は、C++の std::pair を使って、2つの値を一つのオブジェクトにまとめる方法を解説しました。
std::pair<T1, T2>で、2つの型のペアを定義できる。std::make_pairで、値から簡単にpairを生成できる。.firstと.secondで、それぞれの要素にアクセスする。
pair は、std::map のキーと値のペアを表現したり、関数から2つの値を返したい(例: 結果とエラーコード)場合など、様々な場面で活用できる基本的なデータ構造です。
副業から独立まで「稼げる」Webスキルを習得する(PR)
ここまで読んでいただきありがとうございます。 最後に宣伝をさせてください。
「副業を始めたいが、何から手をつければいいかわからない」「独学でスキルはついたが、収益化できていない」という悩みを持つ方には、マンツーマン指導のWebスクール**「メイカラ」**が適しています。
このスクールは、単に技術を教えるだけでなく、**「副業として具体的にどう稼ぐか」**という実務直結のノウハウ提供に特化している点が特徴です。
講師陣は、実際に「副業Webライターから1年で独立して月収100万円」を達成したプロや、現役で利益を出し続けているブロガーなど、確かな実績を持つプレイヤーのみで構成されています。そのため、机上の空論ではない、現場で通用する戦術を学ぶことができます。
副業に特化した強み
- 最短ルートの提示: 未経験からでも実績を出せるよう、マンツーマンで指導。
- AI活用の習得: 副業の時間対効果を最大化するための、正しいAI活用スキルも網羅。
- 案件獲得のチャンス: 運営がWebマーケティング会社であるため、実力次第で社内案件の紹介など、仕事に直結する可能性があります。
受講者の多くは、「在宅でできる仕事を探している」「副業を頑張りたい」という20代・30代・40代が中心です。
受講前には、講師による無料説明が行われます。無理な勧誘はなく、自分に合った副業スタイルやプランを相談できるため、まずは話を聞いてみることから始めてみてはいかがでしょうか。
