목록C++ (5)
1.배열에 할당된 크기를 넘어서 접근했을 때 2.전역 배열의 크기가 메모리 제한을 초과할 때 3.지역 배열의 크기가 스택 크기 제한을 넘어갈 때 4.0으로 나눌 때 5.라이브러리에서 예외를 발생시켰을 때 6.재귀 호출이 너무 깊어질 때 7.이미 해제된 메모리를 또 참조할 때 8.사이즈가 0인 벡터를 참조할 때 9.빈 문자열을 stoi 할 때
링크 : https://blog.naver.com/omg92/60148996317 stl vector, list, queue 속도 비교 #include #include #include #include using ... blog.naver.com 문득 vector와 queue의 속도 차이가 궁금해져서 관련 자료를 찾아봤다. 벡터는 런타임에 크기가 변경될 수 있는 배열과 같은 자료구조이다. 따라서 배열과 유사하게 사용할 수 있다. 인덱스 구조를 사용하기 때문에 임의 접근이 가능하고 탐색이 빠르다는 장점이 있다. 하지만 인덱스 구조를 유지하기 위해서 임의의 위치에 있는 원소의 삽입 및 삭제가 어렵다는 단점이 있다 ! 100,000칸 짜리 배열에서 맨 앞 칸을 빼고 나머지 99,999칸을 앞으로 당기는 것과 비..
일반적으로 cin과 cout은 printf, scanf와 비교했을 때 속도가 현저히 느리다. 그냥 사용한다해도 이 차이로 시간초과가 발생하는 경우를 만나보지 못했고 cin과 cout이 훨씬 편하다고 느꼈기 때문에 그동안은 중요하지 않게 생각했다. 하지만 알고리즘 문제를 풀다가 이 차이 때문에 시간초과가 나는 경우를 만났다. 이 경우에 사용할 수 있는 방법이 있다. 자세한 내용은 아래 코드를 참고하자. 123ios_base :: sync_with_stdio(false);cin.tie(NULL);cout.tie(NULL);cs ※ endl보다 \n을 사용하는 것이 더 빠름 이 3줄을 추가해주는 것 만으로 cin과 cout의 속도를 높일 수 있다 ! 일종의 편법이지만 이 방법을 사용하면 C++ 입출력 속도를 ..
C++로 코딩을 할 때 _CRT_SECURE_NO_WARNINGS이라는 문구를 적는 사람들이 많다. 무슨 뜻인지 알아보자 ! 먼저 CRT는 C Run-Time Libraries의 줄임말이다.즉, C++ 기본 라이브러리의 한 부분이다. Visual Studio 버전이 올라가면서 CRT에도 많은 변화가 생겼다. scanf, gets, strcpy, fopen과 같은 함수들을 사용할 때 unsafe하다는 경고를 본 적이 있을 것이다. scanf_s, gets_s와 같이 _s를 붙여서 더 안전한 함수가 만들어졌으니 사용하라는 뜻이다. 예를 들어, 위 경우에 buffer의 capacity가 message보다 작다. 이 때, strcpy는 buffer overflow가 발생하게 된다. 즉, 메모리의 낭비를 불러온다..