Develop & CS

Develop & CS/C, C++

C++에서 참조자(Reference) 구현에 대한 궁금증 (2023-11-28)

“윤성우의 열혈 C++” 책을 보면서 C++에 대한 공부를 하던 중 참조자에 대해 공부하였는데 참조자는 어떻게 구현되어있는지 궁금하여 IDA로 리버싱 해본다. 참조자(Reference) 참조자는 메모리 공간에 이름을 하나 더 붙여주는 방법이다. 기존에 있는 변수명 외에도 별칭을 부여하여 사용 가능하다. int num1 = 1337; int &num = num1; 이렇게 사용한다. //Reference.cpp #include using namespace std; int main(void) { int num1 = 1020; int &num2 = num1; cout

Develop & CS/C, C++

Qt build가 안되는 문제

ninja: error: rebuilding 'build.ninja': subcommand failed Qt를 사용하다가 시작부터 build가 안되어서 올려둡니다. 저는 구글 드라이브를 연결해서 사용하고, 프로젝트도 여기 올려뒀는데 혹시 이것때문인가 싶어서 C 드라이브로 바꿨고요. 그랬더니 다른 에러가 떴습니다. 빌드가 잘못되어서 무한반복 하고 있던건데. 이는 경로에 한글을 제거하였더니 해결했습니다. 1. 로컬 드라이브를 사용하는가? 2. 경로에 한글이 포함되어있는가?

Develop & CS/C, C++

Qt 프로젝트 생성

Udemy에서 Qt 강의(Qt 6 C++ GUI Development)를 듣는 중 잊어버리지 않도록 Qt 프로젝트 생성에 대해 올려둡니다. Qt 실행해서 ctrl + shift + N 을 눌러 프로젝트 생성 Qt Widgets Application 선택 이름 및 프로젝트 폴더 선택 후 다음. CMake를 사용할 예정 (QMake와 비교에서 그냥 더 좋으니까 CMake 쓰라는 내용이 있었음) Base Class를 QWidget으로 변경 그 다음페이지는 그냥 넘어가고 강의에서는 MinGW 를 선택함 강사의 최애 컴파일러라는 듯. 그냥 따라서 선택함. 이러한 파일들이 만들엊리 것임을 알려줍니다. CMakeLists.txt는 cmake가 빌드할 것들을 정의한 파일입니다. 나머지는 직관적인듯..? ui도 ui를 ..

Develop & CS/C, C++

Qt 설치

Qt 설치에 대해서 기록하려고 합니다. 마침 지금 Qt를 설치하고 있기 때문이죠. 공부용으로 설치하는 작업입니다. https://www.qt.io/ Qt | Tools for Each Stage of Software Development Lifecycle All the essential tools for all stages of Software Development Lifecycle: planning, design, development, testing, and deployment. www.qt.io qt.io를 하면 바로 qt사이트로 들어갑니다. 이전 사람들의 포스팅과 뭔가 다른 UI라서 헤맸는데 맨 하단의 다운로드에 들어갑니다. https://www.qt.io/download 여기에서 우측에 보이는 ..

Develop & CS/etc

[Git] submodule을 사용할 때 clone하는 법

git에서 submodule을 사용하면, 단순히 clone을 했을 때 submodule 폴더는 빈 폴더가 됩니다. 이걸 까먹고 있다가 왜 안되지 하면서 괜한 쇼를 했었는데.. 꼭 기억해두고자 글로 작성합니다. submodule이 있으면, git clone --recurse-submodules 로 클론한다.. 아, 추가로. git pull --recurse-submodules pull은 이렇게 수행한다.

Develop & CS

(M1) Mac에서 <bits/stdc++.h> 사용하기

라이브러리 경러롤 찾는다. 여기서 usr까지만 이동한다. 그리고 usr 내에 있는 include 디렉토리로 이동한다. cd /Library/Developer/CommandLineTools/usr/include 여기에 bits 디렉토리를 만든다. sudo mkdir bits bits 디렉토리로 들어가서 vi등을 사용하여 stdc++.h를 만든다. cd bits sudo vi stdc++.h stdc++의 내용은 이러하다 // C++ includes used for precompiling -*- C++ -*- // Copyright (C) 2003-2013 Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. Th..

Develop & CS/Baekjoon

[Baekjoon] [7562 : 나이트의 이동] C++ 풀이

나이트의 이동 문제는 BFS로 최소 이동 수를 찾는 문제이고 이동하는데 걸리는 횟수를 dist에 저장하면서 bfs를 돌리면 간단하게 풀립니다. 풀이 #include using namespace std; int dx[8] = {-1, -1, -2, -2, 1, 1, 2, 2}; int dy[8] = {-2, 2, -1, 1, -2, 2, -1, 1}; // 나이트의 이동 경로 int main(void) { ios::sync_with_stdio(0); cin.tie(0); int n, l; cin >> n; //테스트 케이스 입력 while (n--) { cin >> l; queue q; //bfs를 위한 queue int dist[301][301]; //distance를 저장하는 이차원 배열 for (in..

Develop & CS/Baekjoon

[Baekjoon] [7569 : 토마토] C++ 풀이

토마토 문제는 대표적인 bfs 거리 구하기 문제의 응용인데 저번 문제로 2차원에서 토마토를 다루었지만 이번에는 3차원에서 토마토로 다루도록 해보겠습니다. 해당 문제를 푸는 데에 핵심적인 개념은 bfs에서 dict라는 array를 통해 거리를 구하는 것에서 단순히 일 수로 바꾸면 되는건데 시작점이 한 개가 아니라 여러개라는 점입니다. 시작점이 여러개라는걸 해결하는 방법도 간단합니다. 시작점들을 미리 큐에 두고 bfs를 돌리면 됩니다. 어차피 최소 일수를 구하는 것이기 때문에 어떠한 시작점에서 방문했다면 다른 시작점에서 방문하지 않을 것이고 큐에서 bfs를 진행하는 과정은 일 수에 따라서 큐에 들어갑니다. 풀이 #include using namespace std; int box[101][101][101]; ..

그믐​
'Develop & CS' 카테고리의 글 목록