読者です 読者をやめる 読者になる 読者になる

algorithm:find

algorithm便利です。
今まで、使ってなかったのが悔やまれます。
しかも別にSTLのコンテナとかでなく、配列でも使えます。
より正確に言うならば、引数として渡すイテレータ対に、++、*、!=演算子が適当に設定されているなら使えます。
そんで、もちろん標準のポインタはこれらの演算子が適当に設定されているので、find関数が使えます。

メモリ関係の事情により、STLが使えない環境の人も、algorithmなら、内部でHeapから勝手にメモリを確保したりはしないので、比較的安全に利用できます。
とりあえず、findだけでも知っていると、使い道は多そうです。

以下、(役に立たない)使用例です。

#include <iostream>
#include <algorithm>
using namespace std;

int main(){
	int array[100];

	for(int i = 0; i < 100; i++){
		array[i] = static_cast<int>(rand()) % 100;
	}

	int* first = &(array[0]);
	int* last = &(array[100]);

	int* p = find(first, last, 50);
	if(p){
		cout << "見つけた!" << endl;
	}
	else{
		cout << "見つからん!" << endl;
	}

	return 0;
}