第91章 fillアルゴリズム関数


fill関数は、ある範囲の要素を新しい値で埋めます。



 void fill(
      ForwardIterator _First, 
      ForwardIterator _Last, 
      const Type& _Val
   );
となっています。注意すべき点は範囲に_Lastが入っていないという点です。

文字列などの配列にも有効です。

では、サンプルを見てみましょう。

// fill01.cpp

#include <iostream>
#include <algorithm>
#include <vector>

using namespace std;

int main()
{
	int i;
	char szStr[16];
	vector<int> v;

	memset(szStr, '\0', sizeof(szStr));
	fill(szStr, szStr + 2, 'A');
	fill(szStr + 2, szStr + 5, 'B');
	fill(szStr + 5, szStr + 8, 'C');

	cout << szStr << endl;

	v.push_back(3);
	v.push_back(10);
	v.push_back(100);

	for (i = 0; i < 3; i++)
		cout << v[i] << endl;

	vector::iterator pv;
	pv = v.begin();

	fill(pv, pv + 2, 1);

	for (i = 0; i < 3; i++)
		cout << v[i] << endl;

	return 0;
}

実行結果です。



似たようなサンプルです。

// fill02.cpp

#include <iostream>
#include <algorithm>
#include <vector>

using namespace std;

int main()
{
	int i;
	int array[10];
	vector<char> v;

	for (i = 0; i < 10; i++)
		array[i] = i;

	fill(array, array + 2, 0);

	for (i = 0; i < 7; i++)
		cout << *(array + i) << endl;

	for (i = 'A'; i <= 'Z'; i++)
		v.push_back(i);
	for (i = 0; i <= 'Z' - 'A'; i++)
		cout << v[i];
	cout << endl;

	fill(v.begin(), v.end(), 'Q');

	for (i = 0; i <= 'Z' - 'A'; i++)
		cout << v[i];
	cout << endl;

	return 0;
}



今回も簡単でした。


[C++Index] [総合Index] [Previous Chapter] [Next Chapter]

Update Apr/11/2005 By Y.Kumei
当ホーム・ページの一部または全部を無断で複写、複製、 転載あるいはコンピュータ等のファイルに保存することを禁じます。