第105章 upper_boundアルゴリズム関数を使う


upper_bound関数は、指定された値よりも大きな最初の要素を捜します。

template
   ForwardIterator upper_bound(
      ForwardIterator _First, 
      ForwardIterator _Last,
      const Type& _Val
   );
_Firstは、検索対象の最初の要素を指定します。

_Lastは、検索対象の最後の次の要素を指定します。

_Valには、値を指定します。

検索対象の要素は昇順または降順で並んでいなくてはなりません。

では、サンプルのプログラムを見てみましょう。

// upperbound01.cpp

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

using namespace std;

int main()
{
	vector <int> v1, v2, v3;
	vector <int>::iterator pv;
	int i;

	for (i = 0; i < 10; i++)
		v1.push_back(i);

	for (pv = v1.begin(); pv != v1.end(); pv++)
		cout << *pv << ",";

	cout << endl;

	pv = upper_bound(v1.begin(), v1.end(), 4);

	cout << "4よりおおきい最初の要素は" << *pv << endl;

	for (i = 10; i < 0; i--)
		v2.push_back(i);

	for (pv = v2.begin(); pv != v2.end(); pv++)
		cout << *pv << ",";
	cout << endl;

	pv = upper_bound(v2.begin(), v2.end(), 4);

	cout << "4より大きい最初の要素は" << *pv << endl;

	return 0;
}
実行結果はどうなるかというと

特に難しくはないですね。


[Index] [総合Index] [Previous Chapter]

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