월 24,200원
5개월 할부 시다른 수강생들이 자주 물어보는 질문이 궁금하신가요?
- 미해결홍정모의 따라하며 배우는 C++
파생클래스
안녕하세요.훌륭한 강의 잘듣고 있습니다. 하나 여쭤볼게 있는데 파생클래스에 대한 부분을 먼저 듣고싶은데 강의내용에 포함되지 않은건가요?? 찾아봤는데 어딨는지 모르겠습니다.....
- 미해결홍정모의 따라하며 배우는 C++
11분 경 *check_fcn 에 대한 궁금증.
bool (*check_fcn)(const in&) 이게 기능을 넣기 위해선 함수가 필요하고, 함수를 파라미터로 사용하기 위해서 펑션 포인터 형태로 (*check_fcn)을 사용. 그리고 리턴 타입이 bool인 isOdd와 isEven 함수를 사용하기 위해 두 함수의 파라미터인 const int&를 사용했음. 제가 이렇게 이해했는데 이게 맞는지 모르겠습니다. 그리고 만약 isOdd와 isEven의 파라미터가 int라면 (*check_fcn)(int)로 사용하는게 맞는건가요?
- 미해결홍정모의 따라하며 배우는 C++
getline
안녕하세요, std 안에 getline 멤버가 없다고 나오는데 혹시 버전의 문제일까요? Visual Studio 2021 버전 입니다.
- 미해결홍정모의 따라하며 배우는 C++
x64 native tools command Prompt for VS 가 나오지 않습니다
윈도우 검색창에 검색해도 cmd 명령 프롬프트 만 나오고 강의처럼 네이티브 툴스 커맨드 프롬프트(?) 가 나오지 않네요 일단 이부분은 강의만 보는식으로 진행해도 되겠죠?
- 미해결홍정모의 따라하며 배우는 C++
저도 isEven 할 떄 0부터 9까지 다 나오네여;;
isodd는 정상대로 홀수만 나오는데, iseven은 다 출력되네여; #include <iostream> #include <array> using namespace std; bool isEven(const int& number) { if (number % 2 == 0) { return true; } } bool isOdd(const int& number) { if (number % 2 != 0) { return true; } } void printNumbers(const array<int, 10>& my_array, bool (*check_fcn)(const int&)) { for (auto n : my_array) { if (check_fcn(n) == true) { cout << n; } } cout << endl; } int main() { array<int, 10> my_array = { 0,1,2,3,4,5,6,7,8,9}; printNumbers(my_array, isOdd); printNumbers(my_array, isEven); return 0; } 다른 분도 그러는거 같은데 컴퓨터 마다 다른건가요??
- 미해결홍정모의 따라하며 배우는 C++
생성자 관하여 질문
제가 예시로 짠 코드인데 생성자를 만들때 TEST1 처럼 만드실 때도 있고 TEST2처럼 만드실 때도 있던데 둘이 동일한 건가요?? 둘 다 인스턴스 만들때 TEST1 t1(10); TEST2 t2(10); 이런식으로 값 하나씩 default constructor로 넣어줘야 하는건 똑같던데 무슨 차이가 있나 싶어서요...ㅎㅎ;;;
- 미해결홍정모의 따라하며 배우는 C++
예제 파일이 어디있나요??
예제파일은 없나요? 가끔 너무 슉슉지나가서 타이핑하는데 오래 걸려요 어디있는지 알려주세요
- 미해결홍정모의 따라하며 배우는 C++
5.9 난수 만들기, rand()를 쓸 때 계속 같은 숫자가 나오는 이유
안녕하세요, <5.9 난수 만들기> 강의를 듣다 궁금한 점이 생겨 질문을 남깁니다. std::time을 사용해 seed를 random하게 생성하는데도 불구하고, rand()로 여러 숫자를 출력할때, build를 다시했는데도 첫 숫자가 항상 동일하게 나옵니다. 50개 숫자 중 나머지 49개는 다 다르게 나옵니다. 첫번째 숫자만 같은 숫자로 계속 나와요. (62로...) 이유가 무엇일까요?
- 미해결홍정모의 따라하며 배우는 C++
읽기 및 쓰기에 대해 파일 포인터가 하나만 있는 이유가 궁금합니다.
#include <iostream> #include <fstream> #include <string> #include <sstream> int main() { using namespace std; // 1. 파일 입출력의 파일 포인터 // 테스트용 텍스트 파일 생성 fstream fs{ "test.txt", std::ios::out }; fs.close(); fs.open("test.txt"); fs << "THIS IS FILE STREAM.\n"; // 읽기 및 쓰기에 대한 현재 파일 포인터의 위치를 콘솔창에 출력 cout << "읽기 위치: " << fs.tellg() << '\n'; // 예상: 0 (파일의 시작 위치) cout << "쓰기 위치: " << fs.tellp() << '\n'; // 예상: 22 (THIS IS FILE STREAM.\n를 쓴 후의 위치) cout << endl; // => 그러나 동일한 결과를 출력한다. // 2. 문자열 스트림 입출력의 스트림 포인터 stringstream ss; ss << "THIS IS STRING STREAM.\n"; string str; ss >> str; cout << "str: " << str << '\n'; // THIS cout << "읽기 위치: " << ss.tellg() << '\n'; // 예상: 4 (THIS를 읽은 후의 위치) cout << "쓰기 위치: " << ss.tellp() << '\n'; // 예상: 23 (THIS IS STRING STREAM.\n 이후의 위치) return 0; } 강의 시청 후에 learncpp.com에서 관련된 챕터를 복습하던 중에 파일 포인터는 읽기 및 쓰기에 대한 파일 포인터가 동일하다는 사실을 알게 되었습니다. 그래서 텍스트 파일을 생성해 임의의 문자열을 파일에 작성하고 tellg()와 tellq()로 확인해봤습니다. 결과는 동일한 위치를 반환했습니다. 읽기를 하지도 않았는데 말이죠. 그런데 일반적으로 생각해보면 입력과 출력에 대해 서로 개별적인 포인터를 가져야할 것 같은데 입출력의 기능을 모두 하는 스트림이 동일한 포인터를 가진다는 게 이해가 안돼서, 이번에는 다른 스트림인 문자열 스트림으로 테스트를 했습니다. 놀랍게도 문자열 스트림은 입출력에 대한 포인터를 독립적으로 보유하는지 tellg()와 tellq()는 서로 다른 위치를 반환했습니다. 구글링으로 답을 찾아보려 했지만 능력의 한계로 찾지 못 했습니다. 왜 입출력 파일 스트림만 동일한 포인터를 가지는 건가요? 단독 언어에 국한된 문제가 아니라 운영체제에 관련된 것일까요?
- 미해결홍정모의 따라하며 배우는 C++
수업 내용은 아니지만 AI, C++ 질문 드립니다.
안녕하세요 강사님의 c강의를 듣고 c++까지 듣다가 최근 python만 사용하느라 c++은 신경쓰지 못하고 있는 대학원생입니다... 제가 모 대학 AI 대학원에 진학중인데 python으로 작성한 코드를 c++로 쉽게 구현 할 수 있는지 구글링해보다가 반갑게도 강사님 블로그에서 관련 내용을 보았습니다. 그래서 혹시 실례가 안된다면 c++로 딥러닝을 구현하는 것에 대해 여쭤보고 싶은데요 1. python 코드를 c++로 변환해서 사용이 가능한지요??(간단하게) 가능하다면 어떤 방법을 써야 될까요? 2. python의 numpy나 pandas 같은 자료구조를 c++에서 어떻게 사용 가능할까요? 3. 머신러닝의 KNN(클러스터) PCA(차원축소) 딥러닝의 CNN, GAN 이러한 기법들을 c++로 쉽게 구현이 가능할까요? 그리고 RESNET이나 skip-gan 같은 커스터마이징 된 딥러닝 모델들도 쉽게 구현 가능할까요?? 질문이 과목과 거리가 있고 쉽지않은 내용 같지만 혹시 답변 가능하시면 답변해 주시면 감사하겠습니다!
- 미해결홍정모의 따라하며 배우는 C++
placeholder
bind, placeholder라는 개념이 잘 이해가 안되는데요! 1. bind를 사용하는 이유가 무엇인가요?2. placeholder의 의미가 무엇인가요?
- 미해결홍정모의 따라하며 배우는 C++
resize 함수 작성 중 문제가 있어 질문드립니다.
resize함수 작성 중에 위와 같이 배열의 길이를 저장하는 length의 길이를 변경하는 코드를 넣으면 아래와 같은 런타임 에러가 발생합니다 힙 버퍼 종료 후에 메모리에 작성을 했다는데, 어떤 의미인지 이해가 되지 않아서 질문 드립니다. 전체 코드 : class IntArray { private: int m_length = 0; int* m_ptr = nullptr; public: //Constructors IntArray(const int &length) :m_length(length) { m_ptr = new int[length]; } IntArray(const std::initializer_list<int>& list) : IntArray(list.size()) { int count = 0; for (auto& e : list) { m_ptr[count++] = e; } } //Destructors ~IntArray() { delete[] m_ptr; } //reset void reset() { delete[] m_ptr; m_ptr = new int[m_length]; } //resize void resize(const int& x) { if (m_length == x) return; else if (m_length < x) { int* temp = new int[x]; for (int i = 0; i < m_length; i++) { temp[i] = m_ptr[i]; } //m_length = x; delete[] m_ptr; m_ptr = temp; } else if (m_length > x) { int* temp = new int[x]; for (int i = 0; i < x; i++) { temp[i] = m_ptr[i]; } //m_length = x; delete[] m_ptr; m_ptr = temp; } } //insertBefore(const int & value , const int & ix); void insertBefore(const int& value, const int& ix) { resize(m_length + 1); for (int i = m_length; i > ix; i--) { m_ptr[i] = m_ptr[i - 1]; } m_ptr[ix] = value; } //remove(const int & ix); void remove(const int& ix) { for (int i = ix; i < m_length-1; i++) { m_ptr[ix] = m_ptr[ix + 1]; } } //push_back(const int& value); void push_back(const int& value) { resize(m_length + 1); m_ptr[m_length] = value; } friend std::ostream& operator << (std::ostream& out,const IntArray& intarr) { for (int i = 0; i <intarr.m_length ; i++) { out << intarr.m_ptr[i] << " "; } out << std::endl; return out; } }; int main() { IntArray my_arr {1,3,5,7,9}; my_arr.insertBefore(10, 1); //1,10,3,5,7,9 //my_arr.remove(3); //1,10,3,7,9 //my_arr.push_back(13); //1,10,3,7,9,13 std::cout << my_arr << std::endl; }
- 미해결홍정모의 따라하며 배우는 C++
vs2022 에서는 다음과 같이 바뀌었습니다.
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 1. Create Git Repository를 클릭하면 위와 같은 창에서 리포지토리를 만들 수 있습니다.
- 미해결홍정모의 따라하며 배우는 C++
21:44초에서 cond_type_mixed도 reference가 되어야하는 거 아닌가요?
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 21:44초에서 cond_type_mixed도 reference가 되어야하는 거 아닌가요?
- 미해결홍정모의 따라하며 배우는 C++
seekg()에 대한 질문
안녕하세요 강의 잘 듣고 있습니다 const string filename = "my_file.txt"; //make a file { ofstream ofs(filename); for (char i = 'a'; i <= 'z'; i++) { ofs << i; } } //read the file { ifstream ifs(filename); cout << (char)ifs.get() << endl; //a cout << (char)ifs.get() << endl; //b ifs.seekg(0); cout << (char)ifs.get() << endl; //a cout << (char)ifs.get() << endl; //b cout << (char)ifs.get() << endl; //c ifs.seekg(5, ios::cur); cout << (char)ifs.get() << endl; //i } get()이랑 seekg()를 같이 쓰다가 의문이 생겼는데 get()은 ifs에 있는 문자 하나를 뺀다고 알고 있습니다 그래서 위의 코드에서 a와b는 ifs 안에 없다고 생각됩니다 근데 seekg()를 사용할 경우 예를 들어서 seekg(5)로 할경우 처음 ifs안에 있던 값들을 지우고 5번째 위치에서 파일 끝까지 (파일에 있는) 문자들을 다시 ifs에 집어넣는건가요?
- 미해결홍정모의 따라하며 배우는 C++
nampespace의 개념이 클래스와 흡사하나요?
예전에 겉핥기식으로 배운 c++에서 클래스를 배웠는데 강의를 듣는 도중 namespace에서 변수나 함수의 선언이나 namespace에 정의된 변수나 함수를 이용하는 방식이 클래스를 사용하는 용법과 비슷하다고 느꼈는데 namespace와 클래스의 관계가 궁금합니다.
- 해결됨홍정모의 따라하며 배우는 C++
string을 const char*로 바꿀 필요가 있나요?
제목 그대로 필요가 있는건가요?
- 미해결홍정모의 따라하며 배우는 C++
참조로 인자값 받는 부분에 대해서
11분 30초 정도에 보면 레퍼런스로 받을 경우 복사된 값이 들어가서 포인터로 바꾼다고 설명하셨습니다, 근데 원래 레퍼런스로 받으면 복사가 아니라서 그 값 자체가 바뀌지 않나요? 왜 굳이 포인터를 사용해야 하는지 잘 모르겠습니다ㅜ
- 미해결홍정모의 따라하며 배우는 C++
sleep_for 사용
[16:33] sleep_for을 의도적으로 넣어주신 이유는 해당 구문이 현재 thread의 yield 역활을 해서 그런건가요? 예전에 sleep을 통해서 스레드가 작업에 대한 처리를 yield 한다고 들어본 적이 있는 것 같아서요!
- 미해결홍정모의 따라하며 배우는 C++
클래스 내부에 있는 vector 리턴값 출력하는 방법에 대해서 질문드립니다~
#include <iostream> #include <vector> using namespace std; class Solution { public: vector<int> twoSum(vector<int>& nums, int target) { vector<int> res; for (int i = 0; i < nums.size(); i++) { for (int j = i + 1; j <= nums.size()-1; j++) { if (nums[i] + nums[j] == target) { res.push_back(i); res.push_back(j); return res; } } } return res; } }; int main() { Solution s; vector<int> nums = { 2, 7, 12, 15 }; int target = 9; cout << s.twoSum(nums, target) << endl; return 0; } 릿코드 알고리즘 첫번째 문제입니다. 배열을 선언하고 for문으로 배열 인자값을 찾아서 서로 더해 타겟값을 구하는 문제입니다. 제가 구현한 코드인데, 인스턴스를 만들고 함수에 값을 대입하고 cout으로 출력을 하려고 했는데 코딩 에러가 났습니다 ㅠ 구글에 검색해봐도 방법이 없어서 부족한 실력이지만... 양해를 구하고 강사님께 질문 한번 드립니다.