본문 바로가기

C++7

Set 자료구조 비교 (c++, python) 알고리즘을 풀던 도중 c++에서 set은 데이터가 정렬되어 있으나 python의 set은 그렇지 않다는 사실을 발견했다. 왜 이러한 차이가 있는고 이러한 차이가 만들어내는 특징은 무엇이 있는지 알아보았습니다. Set 자료구조란 무엇인가 우선 Set 자료구조에 대해 간단히 알아보고 가겠습니다. 위키에서는 다음과 같이 정의하고 있습니다. In computer science, a set is an abstract data type that can store unique values, without any particular order. It is a computerimplementation of the mathematical concept of a finite set. Unlike most other coll.. 2021. 3. 24.
[C++] strtok() 함수를 활용하여 문자열 토크나이징하기 문자열 토크나이징이란 문자열을 원하는 문장 혹을 단어를 기준으로 나누는 작업을 뜻합니다. 그 예로 "I am a boy"를 " "(빈칸)을 기준으로 나누어보면, "I", "am", "a", "boy"로 나눌 수 있습니다. 문자열 토크나이징은 그 활용도가 높아 여러 언어에서 해당 기능을 기본 유틸 함수로 제공해주고 있습니다. C++ 또한 strtok() 메서드를 통해 해당 기능을 제공하지만 다른 언어에 비해 사용하기 조금 복잡한 면이 있습니다. 사용이 어려운 가장 큰 이유는 string 타입이 stl이 아닌 단순한 container이기에 C에서 제공하는 방식을 사용하기 때문입니다. 사용 과정 사용 과정은 다음과 같다 string을 char [] 자료형으로 변형시켜 준다. (c_str() 사용) char [.. 2020. 10. 2.
vs code c++ 알고리즘 풀이 환경 만들기 저는 Visual Studio Code 환경에서 C++ 언어를 사용해 알고리즘을 풀고 있습니다. 위 환경에서 알고리즘 풀이를 진행하면 아래와 같은 불편함이 있습니다. 코드 수정 시 컴파일 필요 컴파일, 실행 명령의 분리 테스트 케이스 수동 입력 다음부터 소개한 내용을 적용한다면 이러한 불편함을 모두 해결할 수 있습니다. Code Runner 확장 프로그램을 통한 컴파일, 실행 Code Runner는 C-family 언어뿐만 아니라 JavaScript, Python 등과 같이 여러 언어들의 실행을 도와주는 확장 프로그램입니다. 해당 확장 프로그램을 설치한다면 오른쪽 상단에 재생버튼이 생깁니다. 해당 버튼을 통해 컴파일부터 실행까지 한 번에 처리할 수 있습니다. code snippet(사용자 코드조각) 생성.. 2020. 7. 28.
[C++] std::advance(),std::distance() 임의 접근 생성자 알고리즘 문제를 풀다 재밌는 함수를 발견했습니다 vector와 같은 ArrayList 형태의 자료구조의 대표적인 장점은 값에 임의로 접근할 수 있다는 것입니다. vector a; a.push_back(1); a.push_back(2); a.push_back(3); 위 코드에서 a는 {1,2,3}의 형태의 data를 가지고 있습니다. 이때 a[1] 혹은 a.at(1)을 사용한다면 1번째 혹은 마지막 값을 거치지 않고 바로 2번째 값인 2에 접근할 수 있습니다. 하지만 map이나 list와 같이 LinkedList 자료형은 이러한 방식으로 data에 접근이 불가능합니다. 하지만 오늘 살펴볼 std::advace()을 사용한다면 LinkedList에서도 임의로 값에 접근할 수 있습니다. std::advance.. 2020. 5. 4.