C++ で文字列の配列を作成する
-
C++ で
std::vector
コンテナを使用して文字列の配列を作成する -
C++ で
std::array
コンテナを使用して文字列の配列を作成する -
C++ で
string arr[]
表記を使用して文字列の配列を作成する -
C++ で
char arr[][]
表記を使用して文字列の配列を作成する
このチュートリアルでは、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;