inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

173만명의 커뮤니티!! 함께 토론해봐요.

19.4 [14:04] std::lock_guard, std::scoped_lock 컴파일 오류

미해결

홍정모의 따라하며 배우는 C++

#include <iostream> #include <thread> #include <atomic> #include <mutex> #include <chrono> using namespace std; mutex mtx; int main() { int shared_memory(0); //atomic<int> shared_memory(0); auto count_func = [&]() { for (int i = 0; i < 1000; ++i) { this_thread::sleep_for(chrono::milliseconds(1)); //shared_memory++; //shared_memory.fetch_add(1); /*mtx.lock(); shared_memory++; mtx.unlock();*/ //std::lock_guard lock(mtx); //std::scoped_lock lock(mtx); shared_memory++; } }; thread t1 = thread(count_func); thread t2 = thread(count_func); thread t3 = thread(count_func); thread t4 = thread(count_func); t1.join(); t2.join(); t3.join(); t4.join(); cout << "After" << endl; cout << shared_memory << endl; return 0; } Debug 모드로 진행시 std::lock_guard랑 scoped_lock이 정상적으로 compile되고 작동이 되는데, Release 모드로 변경하니 해당 lock_guard는 missing template이 뜨고, scoped_lock은 member가 존재하지 않는다고 뜨는데 어떤 점이 문제일까요?.. 교수님 강의에서는 Release 모드에서도 잘 작동하는 거로 보였습니다.

  • c++
오준원 댓글 1 좋아요 1 조회수 612

[클래스 및 분할 컴파일 질문]undefined reference to

미해결

[하루 10분|C++] 누구나 쉽게 배우는 C++ 프로그래밍 입문

클래스를 헤더 파일(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 이런 오류가 발생했습니다. 인터넷을 찾아봐도 잘 모르겠어서 원인이 무엇인지 질문드립니다.

  • c++
정지용 융합전자공학부 한 댓글 1 좋아요 0 조회수 1449

2-R 데이터 저장

미해결

10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트

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] 이렇게 직접 찾게 바꿔서 해결은 했습니다만 데이터가 제대로 안넘어가는 이유가 너무 궁금합니다!!

  • c++
  • 코딩-테스트
자르트 댓글 5 좋아요 0 조회수 446

4-A map 관련 질문입니다.

미해결

10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트

- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요 강사님, 제가 map<int, vector<vector<int>>> ret_v; 의 형태에 대해 이해가 잘 안됩니당 강의에서 설명해주신대로 벡터의 벡터를 이용하는것 까지는 이해를 했습니다. 근데 출력부분이 왜 for(int a : ret_v[ret][0]){ cout << a << " "; } 이렇게 작성 되는지가 이해가 안가네용 ... 제 생각엔 ret_v[ret]면 될거같은데 [0]이 왜 있고 무슨의미인지 이해가 안되네요

  • c++
  • 코딩-테스트
이동규 댓글 2 좋아요 0 조회수 242

3-K 접근 방식

미해결

10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트

안녕하세요,, 선생님 문제 보자마자 bog2636에 있는 치즈 문제랑 똑같다고 생각해서, 같은 로직으로 풀고자 했습니다. dfs를 두개 만들어서 하나는 백조가 백조를 찾아가는 로직, 하나는 얼음을 녹이는 로직. 단순히 2개의 dfs를 만들어서 구현하고자 했습니다. 아직 미완성 코드이긴하지만, 이렇게 푸는 방식이 맞는지 궁금합니다 .. http://boj.kr/5323a9d789cc4883a53cdc463fedb890

  • c++
  • 코딩-테스트
우이리다 댓글 2 좋아요 0 조회수 379

push_back, 이동생성자 질문

미해결

[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문

class Person { public: Person(string name) { this->name = name; cout << "기본 생성자 " << name << endl; } Person(const Person& p) { this->name = p.name; cout << "복사 생성자 " << this->name << endl; } Person(Person&& p) noexcept { this->name = p.name; cout << "이동 생성자 " << p.name << endl; } ~Person() { cout << "소멸자 호출 " << this->name << endl; } public: void operator = (Person&& p) { cout << "이동 대입 " << p.name << endl; } void operator = (const Person& p) { cout << "복사 대입 " << p.name << endl; } public: string name; }; std::vector<Person> v; int main() { ios_base::sync_with_stdio(NULL); cin.tie(NULL); cout.tie(NULL); v.push_back(Person("Kim")); v.push_back(Person("Lee")); Person p1("NY"); v.push_back(p1); return 0; } 위처럼 실행시 Kim에 대한 임시객체 생성 -> vector에 넣을 데이터 이동 생성자로 생성 -> 임시객체 해제(소멸) 순으로 진행될라 생각하여 디버깅 한 결과 제 생각과 맞은듯 하였습니다. 위처럼 생성자들이 호출이 되었고 그다음에 "Lee"임시객체를 생성하고 push_back하는 경우 똑같은 과정대로 push_back될거같았는데 그러지가 않고 위처럼 기본생성자 호출 (임시객체) -> 이동생성자 호출 ( 벡터에 넣을 데이터 noexcept최적화 ) -> 이동생성자 호출?...(여기서 임시객체에 대한 소멸자가 호출되어야 한다고 생각했습니다) 여기서 부터 멘붕이 왔는데 제가 지금 std::vector의 push_back멤버 함수의 동작방식을 제대로 알지 못하는 것인지와 왜 Lee에 대한 이동생성자가 호출되고나서 Kim이라는 변수를 가지는 이동생성자가 한번 더 호출되는지 모르겠습니다 그것도 Person("Lee")를 v에 push_back하는 상황에서요..

  • c++
starkshn 댓글 1 좋아요 0 조회수 377

안녕하세요 2-E 푸는중 질문이있습니다.

미해결

10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트

http://boj.kr/066bf2d88dcc4b16be8da489d9449b1c 정답은 맞추었는데 조건체크부분에서 전부 1이거나 전부0인부분을 체크할때에 문자열의 크기가1일때 전부 합이 4거나 0이면 전부1이거나 0인조건으로 체크하여 결과를 리턴했는데 깔끔하지 못한것같아 혹시 조건문체크에서 전부1이거나 0을 체크할수있는 좋은 방법이있을까 싶어 질문을남겨봅니다 감사합니다.

  • c++
  • 코딩-테스트
이선용 댓글 2 좋아요 0 조회수 231

질문

미해결

10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트

교안이 개정되어, 다시 읽어보고, 전에 중단했던 부분부터 다시 문제를 풀어보려 하는데, 한 가지 궁금점이 있습니다. 위에는 cin이 개행문자까지 입력받는다 하고, 아래는 개행문제 직전까지 입력을 받는다고 언급되어 있습니다. 서로 반대되는 말인 것 같아서, 질문 드립니다. 참고로 제가 이해한 방식은 cin은 개행문자까지 입력된다 생각하고, getline은 개행문자 직전까지 입력된다 생각했습니다. cin >> T;인 경우에는 geline(cin, bufferflush);가 필요가 없지만, geline으로 받는 경우에는 해당 코드(getline(cin, bufferflush);)가 필요하다. 헷갈리지 않기 위해 기본적으로 적는 게 좋다 이렇게 이해한 게 맞을까요??

  • c++
  • 코딩-테스트
kimseunghwan7777 댓글 2 좋아요 0 조회수 352

normal 을 월드계로 바꿀때 worldinvtranspose

해결됨

[게임 프로그래머 도약반] DirectX11 입문

대학교수업때나 물방울책에서 배울때 normal 은 worldinvtranspose 를 곱하라고 배웠는데 어떤 셰이더 책이나 선생님께서는 world 를 곱하라고 하셔서요 보통 SRT = (SRT)^-t 라서 상관없나요? 어짜피 normalize될때 상쇄될까요?

  • c++
  • directx
밍캬캬 댓글 2 좋아요 0 조회수 553

2-F 시간 초과 질문

미해결

10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트

- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. http://boj.kr/9be2e49bafe64797b19ed75db1b6ac7c 재귀로 이 문제를 구현해봤는데 시간 초과가 발생하였습니다. 어떤 부분에서 시간초과가 발생하였는지와 개선할 점에 대해 알려주셨으면 좋겠습니다. 또한 코드 자체는 맞은것 같은데 혹시 반례가 있다면 알려주시면 감사하겠습니다.

  • c++
  • 코딩-테스트
김찬민 댓글 2 좋아요 0 조회수 368

[초기화값] 1e9에 관한 질문입니다

미해결

10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트

안녕하세요 선생님, int 초기화값에 관해 궁금한 부분이 생겨 질문을 드립니다. int형 INF를 1e9로 초기화하는 기본적인 이유는 이해하였습니다. - INF끼리 더했을 때 범위가 넘어가는 것 등을 방지할 수 있다는 것과 - 이상한 문제가 아니라면 1e9로 초기화해도 풀린다는 것 그러나 만약 면접에서 1e9로 초기화한 이유를 질문받는다면 제대로 된 이유를 대답하지 못할 것 같습니다. 위의 두가지 대답은 풀이의 편의를 위해 1e9 이하의 답이 나올 것이라는 자체적인 판단 하에 마음대로 설정했다고 보일 듯 합니다. 문제에서 1e9를 넘어가는 답이 나오지 않을거라고 명시한 적이 없는데 왜 마음대로 1e9를 한계선으로 설정했냐는 질문을 받는다면 어떻게 대답하는 것이 맞을까요? 이런 질문은 들어오지 않는다고 봐야할까요?

  • c++
  • 코딩-테스트
dlsvmfjsrkddml 댓글 2 좋아요 0 조회수 1393

gets 관련 질문드립니다

미해결

it 취업을 위한 알고리즘 문제풀이 입문 (with C/C++) : 코딩테스트 대비

7번 문제 (영어단어복구)에서 gets를 사용하였는데 gets를 사용하면 오류가 떠서 사용을 못하게 되어서 찾아보니 gets가 위험하여 fgets나 gets_s를 사용하라고 하던데 fgets를 사용하니 개행문자까지 들어가서 for(i=0; arr[i]!='\n'; i++) 이렇게 사용하여 풀었는데 혹시 공백이 포함된 문자열을 입력받을때 다른 좋은 방법이 있을까 질문드립니다! 그리고 대문자를 소문자 변환하여 다른 새 배열에 넣고 한번에 출력하셨는데 혹시 for문 안에서 해당될때마다 문자 하나씩 출력하는것과 성능 차이가 있을까요? 감사합니다

  • c++
  • 코딩-테스트
김지연 댓글 2 좋아요 0 조회수 360

map을 공부하던중.. m.insert(pair<int, int>(i, i * 100));

해결됨

[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문

안녕하세요. 오늘 map 을 공부하던중.. pair<int,int>(i,i*100) -> 이 부분이 도대체 무슨 소리인지 모르겠더라구요.. 이름이 없어서 생성자도 아니고 operator도 아니고 1시간 구글링 결투끝에 임시객체 라는 표현을 알게되었어요. Q1 임시객체가 무엇을 반환하는지가 궁금합니다..! 코드상으로는 key 랑 value를 반환하는 것 같긴한데.. 내부를 살펴볼려해도 외계어가 난무해서 물어봅니다 ㅠㅠ 제가 너무 깊게 알려는건지 아니면 기초지식이 부족한건지 잘모르겠네요 하하..

  • c++
루키스팬 댓글 1 좋아요 0 조회수 474

Dev c++ 디버깅이 안되는 현상

미해결

10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트

안녕하세요. 윈도우 환경에서 DEV C++을 사용하고 있습니다. 디버깅을 하고 싶은데 디버그 모드로 실행 하면 해당 메세지 창이 나오고 yes를 누르면 DEV C++ 프로그램이 종료되는 현상이 발생합니다. 해당 현상 해결 방안을 알신다면 방법을 알려주세요. 감사합니다.

  • c++
  • 코딩-테스트
Hyunjee Song 댓글 2 좋아요 0 조회수 1524

[8 - P] 질문입니다

미해결

10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트

안녕하세요 선생님, 벨만 포드 사이클에 대해 이해가지 않는 부분이 있어 질문을 드립니다. https://www.acmicpc.net/source/share/34ff214ab6c944f59092bb5282b4c00e 답지 31 ~ 46라인에 대해 이해가 잘 안되는 상태입니다. 사이클이 발생할 수 있는 모든 here을 큐에 넣어둔 후 there.first == e일 경우 돈을 무한대로 가질 수 있다고 처리하고 있는데 사이클 발생 끝 지점이 종료 노드인것이 어떻게 돈을 무한대로 가질 수 있다는 뜻이 되는지 모르겠습니다. 음의 사이클이 일어난 시작지점이 종료노드 바로 직전이었다고 한다면 종료노드에 가기 전까지 음의 사이클을 돌며 가진 돈을 줄였으면 줄였지 늘리진 못할 것 같고 음의 사이클을 타지 않더라도 벌 수 있는 돈은 마지막에 벌 수 있는 돈 = (종료노드 직전까지 벌 수 있는 돈의 최대값) - (시작지점 ~ 종료지점 교통비) + (종료지점에서 번 돈) 으로 한정될 것으로 보이는데 돈이 무한대가 될 수 있는 이유는 무엇인가요?

  • c++
  • 코딩-테스트
dlsvmfjsrkddml 댓글 1 좋아요 0 조회수 261

Unable to start assembler. Check your settings.

미해결

[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문

3.12.1 버전으로 시작했는데도 설정오류가 뜹니다 -g -f win64 $SOURCE$ -l $LSTOUTPUT$ -o $PROGRAM.OBJ$ 로 옵션 설정을 바꿨고 현재 윈도우 10 을 사용중인데 이유를 모르겠네요 3.14.0버전도 마찬가지라 버전의 문제가 아닌 것 같습니다.

  • c++
고차원정신줄 댓글 1 좋아요 0 조회수 498

강의 자료 다운로드가 안됩니다

미해결

it 취업을 위한 알고리즘 문제풀이 입문 (with C/C++) : 코딩테스트 대비

강의 구매하고 강의자료 다운로드를 받으려는데 먼저 크롬에서 파일 다운로드가 차단돼었고 크롬 보안을 끄고 다운로드를 받으려니 바이러스가있어서 다운로드가안된다고 뜨는데 왜그런걸까요 ㅠㅠ

  • c++
  • 코딩-테스트
댓글 1 좋아요 0 조회수 243

list head와 tail

해결됨

[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문

안녕하세요 stl list 구현부를 학습하던중에 head의 역할이 이해가 안되서 인터넷을 찾아봤는데요. head는 첫번째 노드를 가리키는 것 tail이 마지막 노드를 가리키는 것 첫 초기화 상태는 head와 tail 서로 next prev를 이용해 가리키고 값 삽입 부분에서 head의 next , tail의 prev를 새로운 노드를 가리키게 바꿔주면 되는 것인데.. 설명 내용에는 taill 부분이 빠져있어서 혼란이 왔어요. 결론 : 그냥 둘다 통합으로 header로 표현하신건가요??

  • c++
루키스팬 댓글 1 좋아요 0 조회수 315

1-G 어느 부분이 틀렸는지 모르겠습니다.

미해결

10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트

안녕하세요 강의 안보고 제 방식대로 일단 작성을 해보았는데 어느 부분이 틀렸는지 모르겠습니다. 예제는 맞는데 계속 오답이 나와서 여기에 질문 올립니다. http://boj.kr/93f413d4caad435dbb67578593137ac9

  • c++
  • 코딩-테스트
ku8335 댓글 1 좋아요 1 조회수 210

인기 태그

인프런 TOP Writers

주간 인기글