|
현정환 님이 쓰신 글 :
: 김백일 님이 쓰신 글 :
: : 현정환 님이 쓰신 글 :
: : : 오늘은 제법 쌀쌀하네요..
: : :
: : : 모두 감기 조심하십시오..
: : :
: : : 질문은
: : :
: : : struct slave{
: : : int a;
: : : int b;
: : : int c[5];
: : : }
: : :
: : vector<slave> s;
: : :
: : : 이럴때 s 중에서 a의 값이 5 인 놈을 찾고 검색하고 싶다면 어찌해야 하는지 잘 모르겠네요..
: :
: : 별도의 비교 함수 객체가 필요합니다.
: :
별도의 데이터 멤버를 두고, 생성자에서 지정하도록 하면 되겠네요.
class slave_a_eq_n
{
public:
slave_a_eq_n(int n): n_(n) {}
bool operator()(const slave& sl) { return sl.a == n_; }
private:
int n_;
};
: :
: : 위와 같이 정의한 후,
: :
: : vector<slave>::iterator where = s.begin();
while((where = find_if(where, s.end(), slave_a_eq_n(5))) != s.end())
: : {
: : cout << where.b << endl;
: : }
: :
: : 또는
: :
: : for (vector<slave>::iterator where = s.begin();
: : where != s.end();
where = find_if(where, s.end(), slave_a_eq_n(5))
: : {
: : cout << where.b << endl;
: : }
: :
: :
|