[C++/STL] 다차원 Vector 복사하기
2020. 4. 16. 21:28
Programming/C│C++
1. 다차원 벡터 복사하기 3차원까지는 모르겠다만, 2차원 벡터는 다음과 같이 간단하게 복사할 수 있다. vector graph; graph.assign(5, vector(5, 1)); // 위의 벡터를 복사하려면... vector newGraph; newGraph.assign(graph.size(), vector(graph.size()); copy(graph.begin(), graph.end(), newGraph.begin());
[C++] C++로 eof 처리하기 (cin.eof() 사용법)
2019. 12. 7. 21:00
Programming/C│C++
C언어에서 scanf를 통해서 eof를 처리할 수 있듯이, C++에서도 입력받은 것이 eof인지 처리할 수 있다. int num; cin >> num; if (cin.eof() == true) { // Do something. }
[C++/STL] 우선순위 큐 (Priority Queue) 사용법
2019. 12. 4. 11:33
Programming/C│C++
1. 우선순위 큐란 무엇인가? '선입선출(FIFO, First In First Out)'으로 대변되는 큐 자료형의 기본적인 기능에, 우선순위가 높은 자료형을 가장 먼저 삽입 및 삭제할 수 있게 한 자료형이다. 이러한 우선순위 큐는 운영체제 스케줄링 등 다양한 곳에서 사용된다. 2. C++ 에서의 사용방법 큐가 그렇듯이, C++에서는 STL을 통해서 사용자가 간편하게 정의하고 사용할 수 있다. 기본적인 사용 방법은 다음과 같다. #include priority_queue pq; pq.push(5); pq.push(8); pq.pop(); pq.pop(); priority_queue 이는 우선순위 큐의 선언이다. T는 원하는 자료형 및 클래스, Container는 vector와 같은 컨테이너, Compare..
[C++] 공백 포함하여 한 줄 입력받기
2019. 12. 3. 21:22
Programming/C│C++
1. 일반적인 입력받기 C++을 처음 접하면 다음과 같은 방식으로 사용자로부터 입력을 받는다. char buf[100]; std::cin >> buf; 이렇게 입력받으면 사용자가 입력한 내용이 buf로 들어가게 된다. 하지만 공백이 포함되어 있는 경우, 예를 들어 "Hi, my name is Steve."라고 입력한다면 중간에 삽입된 공백으로 인해 Hi, 까지의 내용만 입력된다. 이러한 현상을 해결하기 위해 입력 라인 전체를 변수에 입력할 수 있는 방법이 있다. 2. 사용법 간단하다. 예를 들어서 100자리를 입력받고 싶다면 다음과 같이 사용하면 된다. char buf[100]; std::cin.getline(buf, 100); 이렇게 사용하면 공백이 포함되어 있어도 전체 내용을 입력받을 수 있다.
[C++] auto 키워드란?
2019. 12. 3. 16:23
Programming/C│C++
C++로 작성한 다양한 스크립트를 구경하다가 'auto' 라는 키워드가 있는 것을 발견하였다. 지금은 C++을 공부하고 있는 단계이기 때문에 이러한 키워드를 정리하는 것이 도움이 될 것이라고 생각한다. 1. auto 키워드란? 우리가 C++에서 변수를 선언할 때 주로 다음과 같은 자료형을 사용한다. bool : 1바이트, 1(true) / 0(false)를 가짐 char : 1바이트, 한 글자를 저장할 수 있음 int : 4바이트, 정수형 float : 4바이트, 실수형 이렇게 자료형을 미리 선언해서 사용하면 계산, 출력 등의 정확한 사용이 가능하다. 하지만 이마저도 귀찮을 때가 있는데, 이럴 때에는 auto 키워드를 사용해보는 것이 좋다. 즉, auto 키워드는 사용자가 자료형을 직접 지정하지 않아도 ..
[C++] 입출력 속도 향상시키기 (cin.tie(NULL) / sync_with_stdio(false))
2019. 12. 3. 13:57
Programming/C│C++
1. C/C++ 입출력 속도 차이? C에서 사용하는 입출력 함수는 다음과 같은 것들이 있다. 이러한 함수는 속도는 빠르지만 사용하기에 불편하거나 귀찮은 것이 단점이다. printf scanf gets putchar 반면 C++에서 제공하는 cin, cout과 같은 함수는 사용이 쉽지만 입출력 속도가 C의 기본 함수만 못하다. 그렇기 때문에 C++에서 빠르고 편리한 입출력을 위해서는 입출력 속도를 향상시켜줘야 할 필요가 있다. 특히, 알고리즘 문제 풀이와 같은 경우에서는 많은 입출력으로 인해서 시간지연이 발생할 수 있기 때문에, 이러한 테크닉은 사용하는 것이 좋다. 2. 함수의 설명 cin.tie(NULL) 이 함수는 cin과 cout의 연결(tie)을 끊어주는 함수이다. 다시 말해서, cin과 cout ..