[C++] 81 連続整数の文字列配列作成 iota関数

[M1 Mac, Big Sur 11.6.7, clang 13.0.0, NO IDE]

C++11から標準ライブラリに採用のiota関数を使って連続整数の文字列配列を作成しました。

GUIアプリで整数を表示させる際にこのような配列が必要になったりします。

なおiota関数を使った直後の変数 testはintの配列なので、これはこれで使い道はあります。

最近は変数に型を付けないと物足りなくなってきました。コードを量産するには型推論が便利でしょうが、趣味レベルで楽しむ分には型付けはあまり苦になりません。

C++のように確実に型付けするか、Pythonのようにいさぎよく何も書かないか、どちらもスタンスがハッキリしていて好みですね。

#include <iostream>
#include <numeric>
#include <array>

using std::cout;

// 11から連続整数10個の文字列リスト作成
int main(int argc, char **argv) {
	int start_num = 11; // 開始数
	const unsigned long nums = 10;  // 個数

	int test[nums];
	std::iota(test, test + nums, start_num);

	// 以下でも可能
	// std::array<int, nums> test;
	// std::iota(test.begin(), test.end(), start_num);

	int i = 0;
	for (int num : test){
		if (i == 0){
			cout << "{\"" << num << "\", " ;
		} else if (i > 0 && i < (nums -1)){
			cout << "\"" << num << "\", " ;
		} else {
			cout << "\"" << num << "\"}" ;
		}

		i++;
	}
}
--------------------------------------------------
出力
--------------------------------------------------
{"11", "12", "13", "14", "15", "16", "17", "18", "19", "20"}