클래스를 헤더 파일(stock.h)와 func.cpp 파일에 분할해서 작성 후 컴파일 했는데 C:\Users\PC-202~1\AppData\Local\Temp\ccEPMb0b.o:practice.cpp:(.text+0x74): undefined reference to `Stock::Stock(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int, float)' C:\Users\PC-202~1\AppData\Local\Temp\ccEPMb0b.o:practice.cpp:(.text+0xac): undefined reference to `Stock::Stock()' C:\Users\PC-202~1\AppData\Local\Temp\ccEPMb0b.o:practice.cpp:(.text+0xfa): undefined reference to `Stock::show()' C:\Users\PC-202~1\AppData\Local\Temp\ccEPMb0b.o:practice.cpp:(.text+0x107): undefined reference to `Stock::show()' C:\Users\PC-202~1\AppData\Local\Temp\ccEPMb0b.o:practice.cpp:(.text+0x162): undefined reference to `Stock::Stock(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int, float)' C:\Users\PC-202~1\AppData\Local\Temp\ccEPMb0b.o:practice.cpp:(.text+0x185): undefined reference to `Stock::~Stock()' C:\Users\PC-202~1\AppData\Local\Temp\ccEPMb0b.o:practice.cpp:(.text+0x1ba): undefined reference to `Stock::show()' C:\Users\PC-202~1\AppData\Local\Temp\ccEPMb0b.o:practice.cpp:(.text+0x1cc): undefined reference to `Stock::~Stock()' C:\Users\PC-202~1\AppData\Local\Temp\ccEPMb0b.o:practice.cpp:(.text+0x1d9): undefined reference to `Stock::~Stock()' C:\Users\PC-202~1\AppData\Local\Temp\ccEPMb0b.o:practice.cpp:(.text+0x20d): undefined reference to `Stock::~Stock()' C:\Users\PC-202~1\AppData\Local\Temp\ccEPMb0b.o:practice.cpp:(.text+0x23a): undefined reference to `Stock::~Stock()' C:\Users\PC-202~1\AppData\Local\Temp\ccEPMb0b.o:practice.cpp:(.text+0x24b): undefined reference to `Stock::~Stock()' collect2.exe: error: ld returned 1 exit status 이런 오류가 발생했습니다. 인터넷을 찾아봐도 잘 모르겠어서 원인이 무엇인지 질문드립니다.
http://boj.kr/1c07c3f4f76347e791816ea1d051396b 위의 코드에서 5 -1 0 0 1 1 0 다음과 같은 테스트케이스를 넣어주면 deleteChildren()에서 1번 노드가 들어갈때 데이터가 온전히 전달이 안됩니다... 확인해보니 1번 노드에서는 자식이 2개여야 하는데 0개로 나옵니다. deleteChildren를 호출하기전에는 2개로 잘 나오는데 이유가 뭘까요..? 아래 사진은 deleteChildren을 호출하기전 데이터 사진입니다. deleteChildren(node& nd) 으로 해도 데이터가 안넘어가지더라구요... 우선은 node가 아닌 int idx를 받아 함수 안에서 tree[idx] 이렇게 직접 찾게 바꿔서 해결은 했습니다만 데이터가 제대로 안넘어가는 이유가 너무 궁금합니다!!
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요 강사님, 제가 map<int, vector<vector<int>>> ret_v; 의 형태에 대해 이해가 잘 안됩니당 강의에서 설명해주신대로 벡터의 벡터를 이용하는것 까지는 이해를 했습니다. 근데 출력부분이 왜 for(int a : ret_v[ret][0]){ cout << a << " "; } 이렇게 작성 되는지가 이해가 안가네용 ... 제 생각엔 ret_v[ret]면 될거같은데 [0]이 왜 있고 무슨의미인지 이해가 안되네요
안녕하세요,, 선생님 문제 보자마자 bog2636에 있는 치즈 문제랑 똑같다고 생각해서, 같은 로직으로 풀고자 했습니다. dfs를 두개 만들어서 하나는 백조가 백조를 찾아가는 로직, 하나는 얼음을 녹이는 로직. 단순히 2개의 dfs를 만들어서 구현하고자 했습니다. 아직 미완성 코드이긴하지만, 이렇게 푸는 방식이 맞는지 궁금합니다 .. http://boj.kr/5323a9d789cc4883a53cdc463fedb890
교안이 개정되어, 다시 읽어보고, 전에 중단했던 부분부터 다시 문제를 풀어보려 하는데, 한 가지 궁금점이 있습니다. 위에는 cin이 개행문자까지 입력받는다 하고, 아래는 개행문제 직전까지 입력을 받는다고 언급되어 있습니다. 서로 반대되는 말인 것 같아서, 질문 드립니다. 참고로 제가 이해한 방식은 cin은 개행문자까지 입력된다 생각하고, getline은 개행문자 직전까지 입력된다 생각했습니다. cin >> T;인 경우에는 geline(cin, bufferflush);가 필요가 없지만, geline으로 받는 경우에는 해당 코드(getline(cin, bufferflush);)가 필요하다. 헷갈리지 않기 위해 기본적으로 적는 게 좋다 이렇게 이해한 게 맞을까요??
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. http://boj.kr/9be2e49bafe64797b19ed75db1b6ac7c 재귀로 이 문제를 구현해봤는데 시간 초과가 발생하였습니다. 어떤 부분에서 시간초과가 발생하였는지와 개선할 점에 대해 알려주셨으면 좋겠습니다. 또한 코드 자체는 맞은것 같은데 혹시 반례가 있다면 알려주시면 감사하겠습니다.
안녕하세요 선생님, int 초기화값에 관해 궁금한 부분이 생겨 질문을 드립니다. int형 INF를 1e9로 초기화하는 기본적인 이유는 이해하였습니다. - INF끼리 더했을 때 범위가 넘어가는 것 등을 방지할 수 있다는 것과 - 이상한 문제가 아니라면 1e9로 초기화해도 풀린다는 것 그러나 만약 면접에서 1e9로 초기화한 이유를 질문받는다면 제대로 된 이유를 대답하지 못할 것 같습니다. 위의 두가지 대답은 풀이의 편의를 위해 1e9 이하의 답이 나올 것이라는 자체적인 판단 하에 마음대로 설정했다고 보일 듯 합니다. 문제에서 1e9를 넘어가는 답이 나오지 않을거라고 명시한 적이 없는데 왜 마음대로 1e9를 한계선으로 설정했냐는 질문을 받는다면 어떻게 대답하는 것이 맞을까요? 이런 질문은 들어오지 않는다고 봐야할까요?
7번 문제 (영어단어복구)에서 gets를 사용하였는데 gets를 사용하면 오류가 떠서 사용을 못하게 되어서 찾아보니 gets가 위험하여 fgets나 gets_s를 사용하라고 하던데 fgets를 사용하니 개행문자까지 들어가서 for(i=0; arr[i]!='\n'; i++) 이렇게 사용하여 풀었는데 혹시 공백이 포함된 문자열을 입력받을때 다른 좋은 방법이 있을까 질문드립니다! 그리고 대문자를 소문자 변환하여 다른 새 배열에 넣고 한번에 출력하셨는데 혹시 for문 안에서 해당될때마다 문자 하나씩 출력하는것과 성능 차이가 있을까요? 감사합니다
[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
안녕하세요. 오늘 map 을 공부하던중.. pair<int,int>(i,i*100) -> 이 부분이 도대체 무슨 소리인지 모르겠더라구요.. 이름이 없어서 생성자도 아니고 operator도 아니고 1시간 구글링 결투끝에 임시객체 라는 표현을 알게되었어요. Q1 임시객체가 무엇을 반환하는지가 궁금합니다..! 코드상으로는 key 랑 value를 반환하는 것 같긴한데.. 내부를 살펴볼려해도 외계어가 난무해서 물어봅니다 ㅠㅠ 제가 너무 깊게 알려는건지 아니면 기초지식이 부족한건지 잘모르겠네요 하하..
안녕하세요 선생님, 벨만 포드 사이클에 대해 이해가지 않는 부분이 있어 질문을 드립니다. https://www.acmicpc.net/source/share/34ff214ab6c944f59092bb5282b4c00e 답지 31 ~ 46라인에 대해 이해가 잘 안되는 상태입니다. 사이클이 발생할 수 있는 모든 here을 큐에 넣어둔 후 there.first == e일 경우 돈을 무한대로 가질 수 있다고 처리하고 있는데 사이클 발생 끝 지점이 종료 노드인것이 어떻게 돈을 무한대로 가질 수 있다는 뜻이 되는지 모르겠습니다. 음의 사이클이 일어난 시작지점이 종료노드 바로 직전이었다고 한다면 종료노드에 가기 전까지 음의 사이클을 돌며 가진 돈을 줄였으면 줄였지 늘리진 못할 것 같고 음의 사이클을 타지 않더라도 벌 수 있는 돈은 마지막에 벌 수 있는 돈 = (종료노드 직전까지 벌 수 있는 돈의 최대값) - (시작지점 ~ 종료지점 교통비) + (종료지점에서 번 돈) 으로 한정될 것으로 보이는데 돈이 무한대가 될 수 있는 이유는 무엇인가요?
[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
3.12.1 버전으로 시작했는데도 설정오류가 뜹니다 -g -f win64 $SOURCE$ -l $LSTOUTPUT$ -o $PROGRAM.OBJ$ 로 옵션 설정을 바꿨고 현재 윈도우 10 을 사용중인데 이유를 모르겠네요 3.14.0버전도 마찬가지라 버전의 문제가 아닌 것 같습니다.
[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
안녕하세요 stl list 구현부를 학습하던중에 head의 역할이 이해가 안되서 인터넷을 찾아봤는데요. head는 첫번째 노드를 가리키는 것 tail이 마지막 노드를 가리키는 것 첫 초기화 상태는 head와 tail 서로 next prev를 이용해 가리키고 값 삽입 부분에서 head의 next , tail의 prev를 새로운 노드를 가리키게 바꿔주면 되는 것인데.. 설명 내용에는 taill 부분이 빠져있어서 혼란이 왔어요. 결론 : 그냥 둘다 통합으로 header로 표현하신건가요??