Skils/C++

C++ 문법이 막혔을때마다 공부하는 글
· Skils/C++
C++로 백준을 풀 때 항상 시간 초과가 난다면 나는 알고리즘의 수정보다는 위의 제목과 같은 구문을 작성해서 기존 코드에 추가했다. ios_base::sync_with_stdio(false); cin.tie(nullptr); cout.tie(nullptr); 근데 이러한 코드가 무슨 의미인지 모르고 사용하고 있으니 궁금하기도 하고, 그래서 구글에서 검색을 하고 정리할 예정이다. 🔎ios_base::sync_with_stdio(false); ios_base::sync_with_stdio 구문은 c의 stdio와 cpp의 iostream을 동기화시켜주는 역할을 하는데 이때 iostream과 stdio의 버퍼를 모드 사용하기 때문에 딜레이가 발생한다. 따라서 ios_base::sync_with_stdio(fa..
· Skils/C++
📕공백을 포함한 문자열 입력받기 📗getline 이용 #include #include #include using namespace std; int main() { string s; getline(cin, s); cout
· Skils/C++
오늘 알아볼 내용은 범위 기반 반복문이다. 📕범위기반 반복문 기존의 for문과 달리 시작과 끝점을 명시해주지 않아도, 알아서 처음부터 끝까지 순회를 하는 반복문이다. 형식은 아래와 같다. for(데이터타입 elem : 데이터리스트) { ~~~~~~~ } 여기서 주의할점은 데이터 타입과 데이터 리스트의 데이터 타입이 같아야 한다는 점이다. 헷갈린다면 auto를 넣어도 될 것 같다.(정확한 건 아님) 데이터 리스트의 변수들이 elem에 그대로 복사된다. #include #include #include #include using namespace std; int main() { vectornum; for(int i=1; i
· Skils/C++
기존에 c를 하다가 이번에 c++로 넘어오게되었는데, 개인적으로 엄청 편리하다고 생각한 기능이 vector였다. (물론 stack,queue도 많이 쓰지만 그 중에서 가장 유용하다고 생각함 ㅎㅎ..) vector란 C++ STL(Standard Template Library)에 있는 container이다. 쉽게 이해하자면 자동으로 메모리 할당이 되는 배열이라고 생각하면 편하다. --> 자동으로 메모리 할당이 된다는게 엄청나게 큰 이점이고 c++의 장점이라고 생각한다. vector를 사용하기 위해서는 아래처럼 헤더파일을 추가해줘야한다. #include 2)vector 선언방법 vector배열이름; //자료형으로 배열을 만듬. 크기는 0 vector배열이름(size) // size만큼 자료형으로 배열을 만듬..
· Skils/C++
코드를 짜는데 map의 개념이 부족해서 굉장히 시간이 오래 걸렸다. 그래서 부족한 개념을 정리하는데 이 카테고리를 쓸 예정이다. map이란? map을 이해하기 위해서는 set에 대한 이해가 필요합니다. set은 key라고 불리는 원소들의 집합으로 이루어진 컨테이너입니다. key에서 중요한 특징은 중복을 허용하지 않는다는 점입니다. set은 key값의 순서대로 정렬이 되는 특징이 있습니다. 이때의 정렬 방식은 inorder방식을 따릅니다. 중복되면 안 되고 정렬이 되어있다.!! 그럼 map은 무엇이냐? map은 set에서 value값이 추가된 것이라고 보면 된다. map은 set에서 추가된 것이기 때문에 중복을 허용하지 않지만, value는 중복을 허용한다. map의 기본 형태는 map m; map은 pa..
재한
'Skils/C++' 카테고리의 글 목록