본문 바로가기

2018-02/c++

(25)
C++ I/O 속도 문제 C++을 사용하고 있고 cin/cout을 사용하고자 한다면, cin.tie(NULL)과 ios::sync_with_stdio(false)를 둘 다 적용해 주고, endl 대신 개행문자(\n)를 쓰자.
Visual Studio 에서 scanf, printf 사용하기 증상 : visual studio에서 compile 할때 scanf, printf는 deprecated 에러가 뜨는 현상조치 : stdafx.h에 #define _CRT_SECURE_NO_WARNINGS플래그 추가결과 : 컴파일이 정상적으로 이루어진다.
make, premake4 실험실 make는 컴파일 스크립트 파일이다. 서로의 의존성을 관리하면서 순차적으로 실행 파일들을 만들어낼 수 있다.예시)Makefilediary_exe : test1.o test2.o main.og++ -o diary_exe test1.o test2.o main.otest1.o : g++ -c test1.cpptest2.o :g++ -c test2.cppmain.o :g++ -c main.cppclean :rm *.o diary_exe** 실행명은 그냥 명일뿐 저걸 파일이름 test1.o 이 아니라 jinhyuk으로 바꿔서 dependency 해도 같다. jinhyuk만 하고 dependency는 파일명으로 해도 된다. dependency는 그 프로세스 또는 그 파일을 얘기할 수 있는 것 같다.** 이미 파일이..
c++ 실험실
g++ 컴파일러 실험실 기본 컴파일 ( 단일 파일 )g++ -o (exe 파일명) myfile.cpp>> 새로운 파일을 생성링커 파일 생성(.o파일)g++ -c myfile.cpp>> 자동으로 myfile.o 파일 생성여러 파일 컴파일g++ -o (exe파일명) myfile.cpp main.cpp>> 새로운 실행파일을 생성* dependency 순서로 적어야 한다.g++ main.cpp myfile.cpp는 main에서 myfile을 링크해야 해서 안된다.링커 파일 잇기g++ -c myfile.cppg++ -o (exe파일명) main.cpp myfile.o* 이 경우에는 순서 상관없음[실험실]헤더 파일과 몸통 파일의 이름이 다르면?>> 상관없다.즉 myfirst.h의 내용을 mysecond.cpp에 담은 다음에g++ -c m..
c++ 라이브러리와 함수 요약 #include #include : priority_queue 여기 있다.#include #include : multiset 여기에 있다.#include : multimap 포함#include : unordered_multiset#include : unordered_multimap#include : greater#include : srand, rand#include : time(NULL)#include : high_resolution_clock#include : atoi()#include ..
연산자와 비트 연산 1234567891011121314151617181920212223string print(int n) { stack reverse; string ret = ""; while (n != 0) { reverse.push('0' + n % 2); n /= 2; } while (reverse.size() != 0) { ret.push_back(reverse.top()); reverse.pop(); } return ret;} int toint(string s) { int ret = 0; int it = 1; for (int i = s.size() - 1; i >= 0; i--) { ret += (s[i] - '0')*it; it *= 2; } return ret;}Colored by Color Scrip..
자료구조 요점정리 주요 알고리즘sort(arr, arr+5, greater());sort(v1.begin(),v1.end(),greater());---1. 일반 배열- 선언int arr[4] = {1,2,3,4};- 인덱싱arr[2];- 2차원 선언arr[2][3];2. 동적 배열- 선언int * arr = new int[3];2차원 배열 선언int ** arr = new int * [10];for(int i = 0 ; i < 10 ; i++){arr[i] = new int[15];}3. 벡터- 선언vector arr1;같은 값으로 미리 채운다vector arr1(10 , 123); // 갯수, 숫자- 인덱싱arr1[2]arr1.at(2);- 삽입arr1.push_back(12);arr..