C++ で文字列の配列を作成する

胡金庫 2023年10月12日
  1. C++ で std::vector コンテナを使用して文字列の配列を作成する
  2. C++ で std::array コンテナを使用して文字列の配列を作成する
  3. C++ で string arr[] 表記を使用して文字列の配列を作成する
  4. C++ で char arr[][] 表記を使用して文字列の配列を作成する
C++ で文字列の配列を作成する

このチュートリアルでは、C++ で文字列の配列を作成する方法のいくつかの方法について説明します。

C++ で std::vector コンテナを使用して文字列の配列を作成する

STL の std::vector コンテナは、文字列の配列を作成するために利用できる汎用データオブジェクトの動的配列を提供します。std::vector の要素は連続して保存されます。したがって、オーバーヘッドなしで効率的にアクセスできます。

一方、std::vector は通常、メモリ管理の効率化のために追加のスペースを割り当てる必要があるため、さまざまなタイプの静的配列よりも多くのストレージを占有します。さらに、std::vector は、次の例に示すように、emplace_back 関数を使用したインプレース要素構築などの要素操作に役立つメンバー関数を提供します。

#include <iostream>
#include <string>
#include <vector>

using std::cin;
using std::cout;
using std::endl;
using std::string;
using std::vector;

template <typename T>
void printVector(std::vector<T> v) {
  for (const auto &item : v) {
    cout << item << "; ";
  }
  cout << endl;
}

int main() {
  vector<string> str_arr1 = {"Sunny Cove", "Willow Cove", "Golden Cove",
                             "Ocean Cove"};

  printVector(str_arr1);
  str_arr1.emplace_back("Palm Cove");
  printVector(str_arr1);

  return EXIT_SUCCESS;
}

出力:

Sunny Cove; Willow Cove; Golden Cove; Ocean Cove;
Sunny Cove; Willow Cove; Golden Cove; Ocean Cove; Palm Cove;

C++ で std::array コンテナを使用して文字列の配列を作成する

または、std::array コンテナを使用して静的配列を宣言することもできます。これらの配列は、メモリフットプリントの効率の点で C スタイルの配列に似ており、アクセシビリティのための共通のメンバー関数を提供します。std::array コンテナは集約初期化を使用します。次のコードサンプルに示すように、一般的なイテレータ関数を使用して反復し、std::copy アルゴリズムを使用して操作することもできます。

#include <array>
#include <iostream>
#include <iterator>
#include <string>

using std::array;
using std::cin;
using std::copy;
using std::cout;
using std::endl;
using std::string;

int main() {
  array<string, 4> str_arr2 = {"Sunny Cove", "Willow Cove", "Golden Cove",
                               "Ocean Cove"};
  array str_arr3 = {"Sunny Cove", "Willow Cove", "Golden Cove", "Ocean Cove"};

  std::copy(str_arr3.begin(), str_arr3.end(),
            std::ostream_iterator<string>(cout, "; "));
  cout << endl;

  return EXIT_SUCCESS;
}

出力:

Sunny Cove; Willow Cove; Golden Cove; Ocean Cove;

C++ で string arr[] 表記を使用して文字列の配列を作成する

文字列の配列を作成するもう 1つの便利な方法は、文字列オブジェクトの C スタイルの配列です。これにより、添字表記でランダムにアクセスし、範囲ベースの for ループで繰り返すことができる固定要素の文字列配列が宣言されます。std::array クラスに含まれているように、要素の操作とアクセシビリティのためのカスタム関数を実装する必要があることに注意してください。

#include <iostream>
#include <string>

using std::cin;
using std::cout;
using std::endl;
using std::string;

int main() {
  string str_arr4[4] = {"Sunny Cove", "Willow Cove", "Golden Cove",
                        "Ocean Cove"};

  for (auto &i : str_arr4) {
    cout << i << "; ";
  }
  cout << endl;

  return EXIT_SUCCESS;
}

出力:

Sunny Cove; Willow Cove; Golden Cove; Ocean Cove;

C++ で char arr[][] 表記を使用して文字列の配列を作成する

固定長の文字列配列を割り当てることもできます。各文字列には、最大文字数が事前定義されています。このメソッドは基本的に、各文字列を行列の 1 行に格納する 2 次元の char 配列を宣言することに注意してください。初期化子リストに配列の 2 番目の次元よりも多くの文字を含む文字列が含まれている場合、文字列の最後の部分は行に収まるようにトリミングされます。

#include <iostream>
#include <string>

using std::cin;
using std::cout;
using std::endl;
using std::string;

int main() {
  char str_arr5[4][20] = {"Sunny Cove", "Willow Cove", "Golden Cove",
                          "Ocean Cove"};
  for (auto &i : str_arr5) {
    cout << i << "; ";
  }
  cout << endl;

  return EXIT_SUCCESS;
}

出力:

Sunny Cove; Willow Cove; Golden Cove; Ocean Cove;
著者: 胡金庫
胡金庫 avatar 胡金庫 avatar

DelftStack.comの創設者です。Jinku はロボティクスと自動車産業で8年以上働いています。自動テスト、リモートサーバーからのデータ収集、耐久テストからのレポート作成が必要となったとき、彼はコーディングスキルを磨きました。彼は電気/電子工学のバックグラウンドを持っていますが、組み込みエレクトロニクス、組み込みプログラミング、フロントエンド/バックエンドプログラミングへの関心を広げています。

LinkedIn Facebook

関連記事 - C++ Array