Turbo-C
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
터보-C 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
Lua 게시판
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C/C++ Q/A
[1560] 생성자에서 지정하도록 하면 됩니다.
김백일 [cedar] 1481 읽음    2002-11-15 13:23
현정환 님이 쓰신 글 :
: 김백일 님이 쓰신 글 :
: : 현정환 님이 쓰신 글 :
: : : 오늘은 제법 쌀쌀하네요..
: : :
: : : 모두 감기 조심하십시오..
: : :
: : : 질문은
: : :
: : : 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;
: : }
: :
: :

+ -

관련 글 리스트
1557 STL 의 find_if 현정환 1803 2002/11/15
1558     Re:STL 의 find_if 김백일 1974 2002/11/15
1559         고맙습니다.. 그런데 만약 "5" 라는 숫자가 그 때 그 때 바뀌는 숫자라면 어떻게 해야 하는지요.. 현정환 1430 2002/11/15
1560             생성자에서 지정하도록 하면 됩니다. 김백일 1481 2002/11/15
1561                 정말 감사합니다.. 꾸벅.. 현정환 1397 2002/11/15
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.