티스토리 뷰

알고리즘/C++

[C++] 나의 알고리즘 노트

지휘리릭 2020. 3. 11. 14:10

1. 입출력 빠르게 하는 법

 

#include <bits/stdc++.h> 이 헤더파일 하나면 map, set, vector 다 됨

 

- DEV C++ : 도구 -> 컴파일러 설정 -> 컴파일러 추가 설정 체크 -> -std=c+=14  추가

- Visual Studio

C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.15.26726\include 경로 아래에 bits 폴더를 만든다.

그리고 stdc++.h 이름의 파일을 만들어서 아래의 내용을 복붙한다.

더보기

//  -*- C++ -*-

// Copyright (C) 2007-2014 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library.  This library is free
// software; you can redistribute it and/or modify it under the
// terms of the GNU General Public License as published by the
// Free Software Foundation; either version 3, or (at your option)
// any later version.

// This library is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
// GNU General Public License for more details.

// Under Section 7 of GPL version 3, you are granted additional
// permissions described in the GCC Runtime Library Exception, version
// 3.1, as published by the Free Software Foundation.

// You should have received a copy of the GNU General Public License and
// a copy of the GCC Runtime Library Exception along with this program;
// see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
// <http://www.gnu.org/licenses/>.

/** @file include/cfenv
 *  This is a Standard C++ Library header.
 */

#ifndef _GLIBCXX_CFENV
#define _GLIBCXX_CFENV 1

#pragma GCC system_header

#if __cplusplus < 201103L
# include <bits/c++0x_warning.h>
#else

#include <bits/c++config.h>

#if _GLIBCXX_HAVE_FENV_H
# include 
#endif

#ifdef _GLIBCXX_USE_C99_FENV_TR1

#undef feclearexcept
#undef fegetexceptflag
#undef feraiseexcept
#undef fesetexceptflag
#undef fetestexcept
#undef fegetround
#undef fesetround
#undef fegetenv
#undef feholdexcept
#undef fesetenv
#undef feupdateenv

namespace std
{
  // types
  using ::fenv_t;
  using ::fexcept_t;

  // functions
  using ::feclearexcept;
  using ::fegetexceptflag;
  using ::feraiseexcept;
  using ::fesetexceptflag;
  using ::fetestexcept;

  using ::fegetround;
  using ::fesetround;

  using ::fegetenv;
  using ::feholdexcept;
  using ::fesetenv;
  using ::feupdateenv;
} // namespace std

#endif // _GLIBCXX_USE_C99_FENV_TR1

#endif // C++11

#endif // _GLIBCXX_CFENV

 

ios_base::sync_with_stdio(false) -> 이거 하면, C++과 C의 스트림 cin , scanf  둘 다 사용할 수 있는 동기화가 해제되면서 C++의 독립 버퍼만 사용하겠다.

cin.tie(NULL) 까지 사용하면 입력 받는 속도가 빨라짐.

사실 cin.tie를 쓰고 안쓰고에서 큰 차이는 없음. 그러나 cin.tie 쓰는 노력을 해보쟝

ios_base 저 함수를 쓰면 scanf 못 씀. cin cout 으로 입출력 받기

 

 

 

 

댓글