본문 바로가기

분류 전체보기

(594)
offset 오프셋 (Offset) offset …을 상쇄하다, 벌충하다, 상쇄하는 것 출발, 최초, 시초(outset) 분가(分家), (종족의) 지족(支族), 분지(分枝); (산의) 지맥; (일반적으로) 파생물 오프셋이란, 두 번째 주소를 만들기 위해 기준 genesis8.tistory.com
[Git] 계정 이름 변경 [GitHub] 깃허브 계정 이름 변경하기 깃허브를 사용하다가 계정 이름을 변경하는 방법이 있길래 공유해 보겠습니다. 이 방법은 예상치 못한 문제가 생길 수 있으니 꼭 필요한 경우에만 진행하세요! 먼저 깃허브 홈페이지로 이동해 steady-hello.tistory.com
[Git] 원격저장소 파일 삭제 폴더를 제거할 때 필요한 명령어는 다음과 같습니다. git rm --cached -r 폴더명 그리고 파일을 제거할 때는 다음과 같이 명령해주면 됩니다. git rm --cached -r 파일명 또는 git rm --cached 파일명 여기서 --cached는 원격저장소의 폴더 또는 파일을 삭제한다고 알려주는 옵션입니다. 만약 --cached가 없으면 로컬저장소의 폴더 또는 파일도 삭제합니다. 그런데 로컬저장소에서는 꼭 필요한 파일이거나 폴더일 수 있기 때문에 잘 판단해서 --cached를 넣어줘야 합니다. 여기서 로컬저장소에서 꼭 필요한 파일이나 폴더에는 코드를 실행하기 위해 꼭 필요한 패키지, 라이브러리, 실행파일 같은 것들입니다. 그러나 개발환경이 조금씩 다른 다른 협업자들을 위해서 이러한 파일이나 ..
ARM Neon ISA 카이제곱 vision0814.tistory.com ARM NEON 优化 原贴:ARM NEON Optimization. An Example将RGB图像转为灰度图,作者运用NEON优化,速度大幅提升。这里来学习一下如何使用NEON。 Since there is so little information about NEON optimizations out there I tho… zhuanlan.zhihu.com
Little Endian, Big Endian big endian 가장 중요한 앞자리의 수가 메모리의 앞에서부터 차례로 저장되어 있다. little endian 가장 중요한 앞자리의 수가 메모리의 뒤에서부터 있다. 가장 중요하지 않은 뒷자리 수가 메모리의 앞에서부터 차례로 저장되어 있다.
UART 와 USART의 차이 UART (Universal Asynchronous Receiver Transmit) : 비동기 모드로서 사용되는 시리얼통신 USART (Universal Synchronus Receiver Transmit) : 동기 모드로서 사용되는 시리얼통신 # UART 와 USART의 차이 = 동기와 비동기 모드의 차이 동기 모드는 데이터 동기화를 위해 별도의 클록 신호를 전송한다. AVR에서 데이터 동기화를 위한 클록 신호는 XCK 핀을 통해 전달된다. 동기 모드에서는 비동기 모드에서 데이터 동기화를 위해 사용하는 시작 비트(start bit)와 정지 비트(stop bit)는 필요하지 않으므로 데이터 전송 효율을 높일 수 있는 장점이 있지만, 클록 핀을 필요로 하는 단점이 있다. 비동기 모드는 별도의 클록을 사용..
UART, USART 실습 kangssu.com/wed07/post/2016-10-14-7%EC%A1%B0-6%EC%A3%BC%EC%B0%A8-%EC%8B%A4%ED%97%98.html 7조 6주차 실험 개요 비동기(UART) 통신에 대해서 알아보는 실험이다. 다른것으로 USART 가 있는데 이것은 동기화 통신이라고 UART, 즉 비동기까지 지원하는 통신방법이다. 이번 실험에서는 UART 를 이용하여 테스트 kangssu.com
Baud Rate, Bit Rate란? 1. Bit Rate Bit Rate는 초당 데이터 비트(0 or 1)를 얼마만큼 전송할 수 있는지 나타내는 값. BPS(Bit Per Second)로도 나타냄. PCIe나 버스의 데이터 전송 속도를 나타낼 때 주로 사용 2. Baud Rate 전기통신 및 전자공학에서 보(baud, 단위 기호 "Bd")는 초당 펄스 수 또는 초당 심볼 수를 뜻한다. Baud Rate는 초당 많은 심볼(Symbol, 의미 있는 데이터 묶음)을 얼마만큼 전송할 수 있는지 나타내는 값. Teraterm 같은 시리얼 통신에서 115200과 같은 수치로 사용 1 킬로 보(kBd)=1,000Bd 의 전송 속도는 초당 1,000심볼의 심볼 속도와 같다. 심볼이 ascii code 라면, 1 baud는 8bit이다. ※ 보오는 1초당..
[C++] virtual 가상 함수는 기본 클래스(상속되지 않은 클래스) 내에서 선언되어 파생 클래스에 의해 재정의되는 맴버 함수입니다. 포인터(Pointer) 또는 기본 클래스에 대한 참조(Reference)를 사용하여 파생 클래스의 객체를 참조하면 해당 객체에 대해 가상 함수를 호출하고 파생 클래스의 함수를 실행할 수 있습니다. 이는 주로 실행시간(Runtime)에 함수의 다형성(Polymorphism)을 구현하는데 사용됩니다. 가상 함수는 기본 클래스내에 virtual 키워드로 함수를 선언합니다. parent 클래스를 가리키는 포인터 p를 선언하고, child 클래스의 객체 c를 선언했습니다. 이 포인터 p는 c객체를 가리킵니다. 몸체는 parent 클래스지만 실제 객체는 child 클래스입니다. 이 포인터 p를 이용하여 ..
[C++] auto C++ 11에서 타입 추론 (Type inference in C++ 11) C++ 11에서 auto 키워드는 유용하다. 5.0이 부동 소수점 숫자 리터럴이라는 것을 이미 알고 있다면, 왜 d의 타입(=자료형)을 double이라고 명시적으로 선언해야 할까? 변수를 초기화할 때 사용하는 값을 기준으로 적절한 타입을 추론하도록 하면 편하지 않을까? auto 키워드는 선언된 변수의 초기화 식을 사용하여 해당 형식을 추론하도록 컴파일러에 지시한다. 즉, auto 키워드를 사용하면 초깃값의 형식에 맟춰 선언하는 인스턴스(변수)의 형식이 '자동'으로 결정된다. 이것을 타입 추론(type inference)이라고 한다. 주의: 이 기능은 생성 시 변수를 초기화할 때만 작동한다. 초기화 값을 사용하지 않고 생성된 변수는..
[C++] 스마트 포인터, unique_ptr C++ 프로그램에서 new 키워드를 사용하여 동적으로 할당받은 메모리는, 반드시 delete 키워드를 사용하여 해제해야 합니다. C++에서는 메모리 누수(memory leak)로부터 프로그램의 안전성을 보장하기 위해 스마트 포인터를 제공하고 있습니다. 스마트 포인터(smart pointer)란 포인터처럼 동작하는 클래스 템플릿으로, 사용이 끝난 메모리를 자동으로 해제해 줍니다. 스마트 포인터의 동작 보통 new 키워드를 사용해 기본 포인터(raw pointer)가 실제 메모리를 가리키도록 초기화한 후에, 기본 포인터를 스마트 포인터에 대입하여 사용합니다. 이렇게 정의된 스마트 포인터의 수명이 다하면, 소멸자는 delete 키워드를 사용하여 할당된 메모리를 자동으로 해제합니다. 따라서 new 키워드가 반환..
[C++] 깊은 복사 , 얕은 복사 얕은 복사 코드에서 name은 주소값을 참조하기때문에 복사를 하였더라도 같은 주소를 참조하게된다. 그렇기 때문에 name을 바꿨을때 A,B객체의 name값이 둘다 바뀌게된다. 또한 소멸자가 호출될 때 name은 같은 메모리를 참조하기때문에 한번 delete된 메모리를다시 delete하기때문에 오류가 발생한다. 깊은 복사 이번에는 복사 생성자에서 새로운 메모리를 할당하기때문에 원본과 복사본의 참조 공간이 다르며 소멸자도 오류가 발생하지않는다. C++ 얕은 복사와 깊은복사 Intro lesslate.github.io [ C++ ] 깊은 복사( deep copy )와 얕은 복사 ( shallow copy ) 얕은 복사( shallow copy )는 디폴트 복사 생성자에 의한 멤버 대 멤버의 복사 방식을 말한다..
[Git] commit 옵션 -m : vim에서 별도의 메세지를 작성할 필요없이 인라인 형식으로 바로 커밋 메세지 작성. -a : 별도의 add명령어를 사용하지 않고 수정된 파일에 대해 add, commit을 한번에 수행함. (단, 한번도 add되지 않은 파일은 add를 따로 작업 해줘야함.) -am : a, m의 옵션을 합친 형태. [Git] 메뉴얼 보는법, commit의 옵션, git의 3가지 공간 메뉴얼 보는법 git의 다양한 사용법을 알고 싶을 때 command창에서 git의 메뉴얼을 볼 수 있습니다. $ git --help git --help 명령어를 치면 명령어나 옵션에 대한 설명을 확인할 수 있습니다. (영어...라니 yuja-kong.tistory.com
[Git] git pull (fatal: refusing to merge unrelated histories) 에러 원격 저장소를 remote로 설정하고 바로 push를 하면 몇가지 오류가 발생할 수도 있다. 예를 들어 아래와 같은 오류 메시지이다. rejected : push가 거부되었다. master -> master : 로컬 저장소의 master 브랜치의 변경 사항을 원격 저장소의 master 브랜치에 반영하려 했는데 non-fast-forward : 원격 저장소의 master 브랜치가 로컬 저장소의 버전보다 이전 버전이 아니다. 라는 의미이다. 즉, 오류가 발생한 원인은 github에서 새로운 프로젝트를 생성하면서 만들어진 원격 저장소의 readme.md 파일때문 일 것이다. 더 정확히 말하면 readme.md 파일의 존재가 문제가 되는 것이 아니고, 원격 저장소에서 이루어진 readme.md를 추가하는 커밋이..
[Git] clone과 fork 차이점 git을 push하는데 기존의 repository의 내용이 담겨있어야 한다는 것을 이해하지 못했다. 그래서 git init, git remote add까지는 했지만 처음 시작을 깨끗한 상태에서 한 것이 아니라 그냥 내가 push하길 원하는 파일 이외에도 각종 잡다한 파일이 모두 들어있는 저장소였던 것이다. git clone과 git fork의 차이점을 보면서 아, 내가 뭔가 잘못생각하고 있었구나!를 깨달았다. fork fork는 다른 사람의 Github repository에서 내가 어떤 부분을 수정하거나 추가 기능을 넣고 싶을 때 해당 respository를 내 Github repository로 그대로 복제하는 기능이다. fork한 저장소는 원본(다른 사람의 github repository)와 연결되어 ..
[Git] commit 목록 확인 git log --branches --not --remotes git log --branches --not --remotes --oneline --graph --decorate git에서 push하지 않은 커밋 확인 :: Outsider's Dev Story git은 svn과는 달리 commit을 한 뒤에 나중에 모아서 push를 하기 때문에 작업을 하다보면 어디까지 푸시를 했는지 헷갈리는 경우가 있습니다. 브랜치를 왔다갔다 하면서 작업하면 더 헷갈리기 마련 blog.outsider.ne.kr
[C++] Rvalue 참조 선언자: && m.blog.naver.com/PostView.nhn?blogId=0511cjh&logNo=221590246985&proxyReferer=https:%2F%2Fwww.google.com%2F
[C++] 참조형 변수 : & References vs pointers 참조형과 포인터는 흥미로운 관계에 있다. 참조형은 접근할 때 암시적으로 역참조되는 포인터와 같은 역할을 한다. (참조형은 내부적으로 포인터를 사용하여 컴파일러서 구현된다.) A brief review of l-values and r-values '01.02 - 변수, 초기화 및 할당' 포스트에서 l-value와 r-value를 공부한 적이 있다. 요약하면, l-value는 메모리 주소를 가진 객체이고 r-value는 메모리 주소가 없고, 표현식 범위에만 있는 임시 값이다. 참조형 변수 (Reference variable) 지금까지 두 가지 변수 타입을 공부했다. 일반 변수(normal variable): 직접 값을 보유. 포인터(pointer): 다른 값의 주소(..
[C++] 멤버 이니셜라이저 위에서 쓰인 멤버 이니셜라이저에 대해 간단히 알아보도록 합시다. 이 멤버 이니셜라이저는, 방금처럼 부모 클래스의 멤버 변수를 초기화 하기 위해서 생성자 함수를 호출한다던가, 클래스 내의 변수를 초기화한다던가, const 변수를 초기화 할때도 사용됩니다. 멤버 이니셜라이저는 생성자의 몸체 부분보다 먼저 실행된다는 특징을 가지고 있습니다. 간단히 멤버 이니셜라이저에 대한 예제를 살펴보도록 합시다. 코드를 살펴보시면, 5~15행에 memInit란 클래스가 정의되어 있고, 그 안에는 num1, num2라는 private 멤버와 생성자, num1과 num2를 출력하는 ShowInfo 함수가 존재합니다. 10행을 잘 보시면, 콜론(:) 연산자 뒤에 "num1(_num1), num2(_num2)"와 같이 쓰였는데, ..
[C++] char to int 문제를 풀다가 문자를 정수로 바꾸는 걸 까먹고 안해서 계속 에러가 나는 걸 꽤나 헤맸다. 뒤늦게 숫자가 아스키 코드라는 것을 깨닫고 C++에서 char 데이터형을 int로 변환하는 법을 검색해 보았다. 스택 오버플로우에 쉬운 방법이 있어 기록해 놓는다. '1'의 문자를 int 1로 수정하고 싶다면 아래와 같이 작성할 수 있다. 아스키 코드의 순서가 '0' 부터 '9'씩 차례대로 1씩 늘어나므로 위와 같이 작성하면 해당 수의 값을 구할 수 있다. '1'의 문자의 아스키 코드 값을 보고 싶다면 (int)를 붙여 형 변환을 해준다. [C++] char형 데이터 int형으로 변환하기 문제를 풀다가 문자를 정수로 바꾸는 걸 까먹고 안해서 계속 에러가 나는 걸 꽤나 헤맸다. 뒤늦게 숫자가 아스키 코드라는 것을 깨닫..
[BOJ] 9466 텀 프로젝트 cycle의 개수를 세야하는 문제였다. 이전에도 알고리즘 조교하면서 구현을 제대로 못했었는데 이번에도 어렵게 코드를 이해했다. 9466번: 텀 프로젝트 이번 가을학기에 '문제 해결' 강의를 신청한 학생들은 텀 프로젝트를 수행해야 한다. 프로젝트 팀원 수에는 제한이 없다. 심지어 모든 학생들이 동일한 팀의 팀원인 경우와 같이 한 팀만 있을 www.acmicpc.net 이전에 확인한 cycle 관련코드도 지금 다시 보니 어질어질하다. frieden1946.tistory.com/334 #include #include //memset using namespace std; const int MAX = 100000 + 1; int N, cnt; int want[MAX]; bool visited[MAX]; bool ..
[C++] vector 탐색 [C++ STL] '탐색 알고리즘(search algorithm)' C++ STL에서 제공하는 컨테이너에는 기본적인 기능을 담은 멤버 함수가 있습니다. 그리고 그것과는 별개로, STL에선 알고리즘(algorithm)을 제공합니다. STL algorithm은 algorithm 헤더 파일을 통해 사용할 pangtrue.tistory.com C++ Vector 값 탐색 find - 존재 유무 확인 1. find, find_if vector에서 특정 데이터가 존재하는지 확인하고 싶다. 그렇다면 algorithm 라이브러리의 find를 사용할 수 있다. find는 반복자를 인자로 갖으면서 배열, vector, deque 처럼 일련의 데이터.. notepad96.tistory.com
[BOJ] 2331 반복수열 DFS로 풀어야하는 문제였는데 처음에는 이게 어떻게 DFS가 되는지 고민해야 했다. 그래도 고민해서 BFS로 하면 되는구나 하고 알아내긴 했다. 수가 매우커진다고 생각했기 때문에 vector를 쓰려고 했는데 vector는 또 탐색을 어떻게 진행해야하는지가 문제였다. find함수를 사용하려했는데 내가 원하는 범위안에서만 값을 찾는 방법을 알아내지 못해서 for문으로 그냥 반복해서 값을 확인해주는 코드를 작성하였다. 다른사람이 작성한 코드를 보니 최대 값도 3만이 넘지 않는다고 측정하여서 범위를 한정시킬 수 있었다. 그걸 배열로 작성하여 주니 좀 더 간단하게 해결되었다. 내가 작성한 코드는 if문이 많아서 별로 좋은 코드는 아닌 것 같다. #include #include #include using names..
[BOJ] 2110 공유기 설치 가장 인접한 공유기의 최대거리를 이분탐색을 이용해서 구한다는 것까지는 알겠는데 이걸 공유기 C개만큼이 가능한지 확인하는 방법을 생각하기가 어려웠다. 해결책을 보니 첫번째 집에 무조건 공유기가 설치된다고 가정하고 계산을 한다. 이건 이해가 아직도 잘 안간다. ▶(수정) 거리가 d보다 무조건 같거나 커야하므로 첫번째 집이 아니라 그 다음집부터 시작을 한다면 공유기가 있는 집들간의 거리는 당연히 줄어들 것이다. 그러니까 처음집부터 해야 거리가 좀 더 큰 영역을 확인을 할 가능성을 높일 수 있다. 마지막 줄의 답이 x이상일 수 있는가?에 대한 내용을 구현하는 것이 어려웠습니다. ​ 정리를 하자면 이렇습니다. 먼저 우린 문제에서 주어진 가장 인접한 공유기 간의 최대거리를 구해야합니다. ​ 즉, 공유기를 어디 어디..
[C++] 문자열 입력 한 줄을 입력받아 저장할 수 있는 getline 함수를 사용 cin 에 포함되어 있다. 표준 입력 버퍼에서 개행 문자를 제외한 값을 가져온다. 공백이나 개행 입력 시 공백 이전까지의 값만 결과로 받아들인다. 개행 문자를 입력 버퍼에 남겨둔다. 이때 hello 같은 문자열이라면 문제 없이 입력을 받지만 Hello World!와 같이 띄어쓰기가 포함된 문장이라면 Hello 까지 밖에 입력이 되지 않을 것이다. cin의 >> 연산자에서는 공백문자에서 입력을 끊기 때문인데, 이러한 문제를 해결하기 위해서 getline()이라는 함수를 사용한다. getline() getline()함수는 두 가지가 존재하는데 각가 다른 라이브러리에 존재한다. istream 라이브러리에 속한 cin.getline()함수와 strin..
[C++] 배열 초기화 c에서는 그렇게 귀찮은 배열초기화가 c++에는 내장함수가 존재한다!! C++ 배열 초기화 방법 다음과 같은 배열을 초기화 시키고 싶을때 int arr[100]; 이 있을때 이 배열을 전부 0으로 초기화 하고 싶을때 쓰는 방식은 int arr[100] = {0,}; * 만약 0이 아닌 다른값으로 초기화 하고 싶다면, for(int i=0 www.uwangg.com
[C++] 문법 카테고리
[C++] vector 정렬 정렬을 하려면 라이브러리의 sort() 함수를 쓰면 된다. 따라서 헤더파일을 포함해줘야 한다. sort() 함수의 첫번째 두번째 매개변수는 iterator, 즉 포인터이다. [C++] vector (벡터) 정렬, 배열 정렬하기 정렬을 하려면 라이브러리의 sort() 함수를 쓰면 된다. 따라서 헤더파일을 포함해줘야 한다. sort() 함수의 첫번째 두번째 매개변수는 iterator, 즉 포인터이다. sort - C++ Reference custom (2)template void s.. breakcoding.tistory.com
[BOJ] 1707 이분 그래프 이분 그래프를 먼저 알고 이해하고 있어야 풀 수 있는 문제였다. bfs로만 풀어봤는데 우선 이분그래프를 다시 설명해보자면 서로 연결된 그래프가 있으면 그걸 두 집합으로 나누려고 한다. 이걸 색깔로 구분하는 것이다. 자신이랑 연결된 노드들은 다른 색으로 칠한다. 그게 불가능하다면 이분 그래프가 되지 못한다. 자신과 연결된 노드가 같은 집합에 속하는 것이 되기때문이다. 테스트케이스 11 3 1 2 3 3 2 1 3 2 3 4 4 1 2 2 3 3 4 4 2 3 2 2 1 3 2 4 4 2 1 3 2 4 3 4 1 5 2 1 5 1 2 5 2 1 2 2 5 4 3 1 2 4 3 2 3 4 4 2 3 1 4 3 4 1 2 3 3 1 2 2 3 3 1 2 1 1 2 예제 출력1 YES YES NO YES YES ..
[C++] 다른 파일명의 클래스 파일 헤더파일에서 클래스를 정의했다면 cpp파일에서는 클래스를 따로 선언할 필요 없이 그냥 함수만 작성해주면 된다. [완료]c++ 여러개의 파일을 컴파일 어떻게 하나요? | KLDP 이거 쉬운거라서 검색하면 금방 나올거라고 생각했지만..이외로 안나오네요..-_-; 리눅스에서 C++ 파일을 여러개로 나눈 다음에 그 파일을 컴파일할라고 합니다. 어떻게 해야하나요? #include class kldp.org C, C++] 헤더파일과, CPP파일로 소스 코드 분리 대학교 학부과정에서 C, C++을 배우는 상황에서는 소스코드를 헤더파일과 CPP(혹은 C, 여기서는 CPP파일로 통칭하겠다.)파일로 분할해서 활용하는 일이 거의 없다. 컴퓨터 사고를 키우는 것과 프로 twinparadox.tistory.com main.cp..