Ocean_
꾸준한 프로그래밍
Ocean_
전체 방문자
오늘
어제
  • 분류 전체보기 (174)
    • About Me (4)
    • 우아한테크코스 (27)
    • C & LINUX (50)
    • Operating System (12)
    • Database (25)
    • Computer Vision (0)
    • Problem Solving (0)
      • Programmers (0)
      • BOJ (0)
    • 코코코딩공부 (44)
      • Spring (12)
      • JAVA (14)
      • 디자인 패턴 (4)
      • 책 읽기 (4)

블로그 메뉴

  • 홈
  • 방명록

공지사항

인기 글

태그

  • C++
  • 리눅스
  • 백준
  • C
  • 우아한형제들
  • BOJ
  • 원시값 포장
  • 정규화
  • signal
  • OperatingSystem
  • bean
  • 트랜잭션
  • 블랙잭
  • 우아한테크코스5기
  • 인덱스
  • 데이터 조작어
  • 우테코
  • 운영체제
  • 1259
  • 우테코 체스
  • 프로세스
  • DB
  • 우테코5기
  • Operating System
  • Linux
  • 자바
  • OS
  • SIGINT
  • 우아한테크코스
  • Spring

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
Ocean_

꾸준한 프로그래밍

카테고리 없음

c++ 알고리즘 공부 1 - 기초코드 작성

2022. 1. 20. 23:22

원래 C++에서는 배열을 선언할 때 크기를 명시해야 하고 무조건 해당 크기 안에서만 사용을 해야 합니다. 그런데 vector는 일종의 가변배열로 크기를 마음대로 늘렸다 줄였다 할 수 있습니다. 참고로 vector는 vector 헤더에 선언되어있습니다

 

자 이제 우리가 살펴볼 것은 STL을 함수 인자로 넘길 때 어떤 일이 생기는지에 대한 것입니다. STL도 구조체랑 비슷하게 함수 인자로 실어 보내면 복사본을 만들어서 보내기 때문에 함수에서 바꾼건 원본에 영향을 주지 않습니다. 그냥 STL을 쌩으로 함수 인자에 넣으면 복사해서 보낸다는걸 꼭 유의하셔야 합니다. 이 사실을 머릿속에 넣어둡시다.

 

 

 

그리고 scanf를 쓰든 cin을 쓰든 주의해야 할 것이 있는데, scanf와 cin 모두 공백을 포함한 문자열을 입력받을 때 굉장히 껄끄럽습니다. 코드를 보시면 알겠지만 둘 다 공백 앞까지만 입력을 받기 때문입니다. 세 번째는 getline을 이용하는건데 이게 제일 깔끔해보입니다. 대신 이건 type이 C++ string이어야 합니다.

 

string s;

getline(cin,s);

cout << s;

 

 

scanf/printf와 다르게 cin/cout은 입출력으로 인한 시간초과를 막기 위해서 ios::sync_with_stdio(0), cin.tie(0)이라는 두 명령을 실행시켜야 합니다. 이걸 안해두면 입/출력의 양이 많을 때 시간초과가 날 수 있습니다. 두 명령이 뭐하는 명령인지 몰라도 상관은 없지만 그래도 알아서 나쁠건 없으니 알려드리겠습니다. cin 명령을 수행하기 전에 cout 버퍼를 비울 필요가 없다는걸 알 수 있습니다. 그래서 cin 명령을 수행하기 전에 cout 버퍼를 비우지 않도록 하는 코드가 cin.tie(nullptr)인거고, 엄밀히는 type을 지켜서 nullptr로 쓰는게 좋지만 그냥 타이핑도 아낄겸 0으로 쓰겠습니다.

 

 

endl 쓰지 말것. 개행문자 출력

    Ocean_
    Ocean_
    dongVeloper

    티스토리툴바