2008/12/26(Fri) 10:31:06 編集(投稿者)
> 「●●才の人」のようなキー検索っぽいことって実現可能なのでしょうか?
えと、所望する条件を満たせばtrueを返す関数を用意し、
「こいつがtrueを返す要素を列挙せよ!」って言いたいのかしら。
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
struct AAA {
int age;
char* name;
};
ostream& operator<<(ostream& stream, const AAA& a) {
return stream << '(' << a.name << ',' << a.age << ')';
}
// 所望する条件を満たせばtrueを返す関数
bool age5(const AAA& a) {
return a.age == 5;
}
int main() {
vector<AAA> a;
AAA b;
b.age = 1; b.name = "みづき"; a.push_back(b);
b.age = 5; b.name = "シュウたん"; a.push_back(b);
b.age = 5; b.name = "マグさん"; a.push_back(b);
for ( vector<AAA>::iterator position = a.begin();
(position = find_if(position, a.end(), &age5)) != a.end(); // ココで検索
++position ) {
cout << *position << endl;
}
}