PGR21.com
이전 질문 게시판은 새 글 쓰기를 막았습니다. [질문 게시판]을 이용바랍니다.
Date 2009/07/22 08:51:08
Name DEICIDE
Subject C++ 질문입니다. (함수 객체 어댑터 사용 문제. 무한루프에 빠지네요)
안녕하세요, 항상 우수한 PGR 프로그래머 분들로부터 많은 도움을 받고 있는 DEICIDE 입니다.
오늘은 함수 객체 어댑터를 공부하다가 막히는 부분이 생겨서 질문드립니다.
오늘은 에러나 경고가 뜨지 않는 부분이어서 사실 더 난감했습니다;;;

문제는 간단합니다. 벡터를 입력받고, 특정 값을 입력받아서, 그 특정 값보다 작은 값을 찾아 또다른 벡터에 담아 출력하는 프로그램입니다.


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

using namespace std;

void main(void)
{
        int iv[10] = {1,2,3,4,5,6,7,5,4,12};
        vector<int>vec(iv,iv+5);
        vector<int>nvec;
        vector<int>::iterator iter=vec.begin();
        const int val=5;
        
        while((iter=find_if(iter, vec.end(), bind2nd(less<int>(), val))) != vec.end());
        {
                nvec.push_back(*iter);
                iter++;
        }

        for(unsigned int i=0; i<nvec.size() ; ++i)
        {
                cout<<nvec[i];
        }
}


// 그런데 while 부분에서 무한루프에 빠져버립니다.
무한루프에 빠지지 않기 위해 5보다 작은 값을 찾으면 iter 를 증가시키도록 했는데, 그래도 빠져버리네요;
어떤 부분이 문제일까요??

ThEnd.

통합규정 1.3 이용안내 인용

"Pgr은 '명문화된 삭제규정'이 반드시 필요하지 않은 분을 환영합니다.
법 없이도 사는 사람, 남에게 상처를 주지 않으면서 같이 이야기 나눌 수 있는 분이면 좋겠습니다."
Humaneer
09/07/22 10:50
수정 아이콘
제가 눈컴파일 실력이 모자라서, 코드를 돌려봤습니다 (winXP + vc6)

디버깅은 while의 조건문, while내부 첫번째 코드(nvec.push_back())에 각각 break-point를 걸고 돌려봤습니다. 결과는 루프의 조건문에서 계속 빙빙 돌기만 하고 while 내부 코드로 아예 들어가지 않더군요. -_-;

혹시나 해서 while구문을 대충 비스무리하게 for구문으로 바꿔보았는데요.

for ( ; iter != vec.end(); iter = find_if(iter, vec.end(), bind2nd(less<int>(), val)))

nvec.push_back(*iter);
iter++;


1,2,3,4가 출력이 되네요.

일단 컴파일러의 문제일수도 있으니, 혹시 저처럼 visual studio에서 돌려보셨다면 bcc, gcc, mingw 같은 환경으로 테스트를 해보심이 좋을듯 합니다.
Humaneer
09/07/22 11:08
수정 아이콘
음.. 혹시나 온라인 컴파일러가 있나 해서 구글을 뒤지다가 아래의 사이트를 발견했습니다.

http://codepad.org/

굉장히 편리한 사이트네요. 여러가지 언어를 지원해줍니다.

암튼 코드를 submit해서 결과를 보니
역시나 while 구문을 사용한 코드는 time-out이 뜨네요.
for로 바꿔서 submit을 하면 결과가 나옵니다.

도대체 무엇이 문제일까요? 저도 모르겠습니다. 크
09/07/22 11:11
수정 아이콘
Humaneer님// while() 의 조건문에 문제가 있는 것일까요...? 제 생각에는 딱히 문제가 있어 보이지는 않아 보이는데...
작성해주신 for 문을 봐도 다른점이 없어뵈고요;
WinXP + Visual Studio 2005를 쓰고 있습니다. 흠 ㅡ_ㅡ
09/07/22 11:13
수정 아이콘
Humaneer님// 오 정말 괜찮은 사이트군요. 웹에서 코드를 이렇게 실시간으로...
관심 가지고 도움 주셔서 정말 감사합니다.
Humaneer
09/07/22 11:25
수정 아이콘
DEICIDE님 //

아무래도

1. while()의 조건문에 문제가 있음
2. 컴파일러의 버그

둘 중 하나겠지요? 저는 2번의 가능성을 높게 보고 있습니다만..

제가 알기로 vc 컴파일러는 는 버그가 꽤나 많아서 수정이 많이 되어왔지만 아직도 여기저기에 버그가 널려있다고 들었습니다. 특히 stl 쪽으로요.

아는 사람들에게 gcc로 컴파일해서 실행해보라고 해봐야겠네요. :-)
Je ne sais quoi
09/07/22 12:02
수정 아이콘
저는 stl을 몰라서 해석은 안되지만... while 문 끝에 ;이 있습니다. 빼니까 1234 출력되네요.
dozing_lamb
09/07/22 12:51
수정 아이콘

//아무거나


윗 문장도 컴파일이 됨니다

while( ...); <-- ;가 있다면 while문은 거기에서 끝나고
는 실행이 안됩니다
while아래에 있는
은 아무 의미 없는 문장으로 해석
Humaneer
09/07/22 12:52
수정 아이콘
크으으으으 ㅠ_ㅠ; 방금 while 조건문 마지막에 ;를 발견하고, 다른 분이 발견하기 전에 저의 댓글을 후딱 지우던지 -_-;

아무튼 조치를 취하러 오면서, 혹시 다른 분이 답글 달아놓으신건 아니겠지 하는 불안한 마음에 와봤더니, 역시나 달려있군요.

디버깅을 돌리면서도 왜 while수행 구문으로 안들어가는데 무한루프가 돌까? 만 고민했지 맨 뒤에 ;를 못봤네요.

컴파일러 버그니 뭐니 했는데 -_-; MS사에게 살짝 미안하네요. 암튼 -the end.
09/07/22 13:21
수정 아이콘


ㅡ,.ㅡ 죄송합니다. (특히 Humaneer 님;)
답변달아주신분들 정말 감사하고요;;;
자진삭게행 가야하는것인지... ㅡ_ㅡ;;
09/07/22 14:01
수정 아이콘
dozing_lamb님//
도 실행됩니다.
목록 삭게로! 맨위로
번호 제목 이름 날짜 조회
60146 브레이크 없는 자전거 알려주세요 [5] wook982079 09/07/22 2079
60145 겨울 이불 빨래 어떻게 해야될까요? [4] unluckyboy2122 09/07/22 2122
60144 미디어법에 대해서 알려주세요. [5] 나라당1547 09/07/22 1547
60143 여러분에게 1억이 주어지시면 뭐를 하실 건 지요? [48] 검은곰2177 09/07/22 2177
60141 음악질문입니다. [2] Darkmental1545 09/07/22 1545
60140 노트북에 연결하는 듀얼 모니터 질문입니다. [5] 길버그1583 09/07/22 1583
60139 MP3 에 노래파일을 넣었는데 기계에는 없다고 나옵니다 [4] 네오마린1961 09/07/22 1961
60138 여자 친구 낮에 만나면 뭐를 해야 할까요? [8] 비타민C2548 09/07/22 2548
60136 현재 미국에서 신종인플루엔자의 확산상태는 어느정도 일까요? [3] 울랄랄라1617 09/07/22 1617
60135 송병구 vs 정명훈 스타리그 경기(리버스캐럽질문)에 관해서요. [4] 세느1986 09/07/22 1986
60134 지산락페스티벌 질문이요 [2] 2105 09/07/22 2105
60133 개기일식 맨눈으로 보면 안보이는건가요? [7] DynamicToss2328 09/07/22 2328
60132 C++ 질문입니다. (함수 객체 어댑터 사용 문제. 무한루프에 빠지네요) [10] DEICIDE2718 09/07/22 2718
60131 온게임넷이랑 플레이플 홈페이지 접속이 안 됩니다 라이시륜1514 09/07/22 1514
60130 집에 습기가 너무 많이 찹니다~ 도와주십시요~ [7] 쓰고이1987 09/07/22 1987
60129 랩탑 같은 경우는 그래픽카드 어떤식으로 교체하나요? [3] 탈퇴한 회원1510 09/07/22 1510
60128 저작권 관련없는 이미지 소스 제공하는 사이트 있나요? [1] 본호라이즌1656 09/07/22 1656
60127 핸드폰을 새로 사려구하는데요.. [5] 쿠니미히로2047 09/07/22 2047
60126 내일 일식관련 질문입니다!!!! [4] Dreamlike2066 09/07/22 2066
60125 괜찮은 연애게시판 질문드립니다. [2] 율본좌2574 09/07/22 2574
60124 [카메라, 일식]일식 촬영에 관하여 질문이요~ [5] KyRiE1915 09/07/22 1915
60121 수능 언어 영역 질문입니다 [2] 자판2082 09/07/21 2082
60120 노래 관련 질문입니다 [2] 김종호2078 09/07/21 2078
목록 이전 다음
댓글

+ : 최근 6시간내에 달린 댓글
+ : 최근 12시간내에 달린 댓글
맨 위로