c++ STL에서 fill을 어떻게 쓰는지 예제로 알아봅시다. 이것은 공식 문서에 따르면, forward 이터레이터 2개가 필요합니다. 그리고 해당 이터레이터는 이 문서에 설명이 자세히 되어 있습니다. 그런데 보통, 저는 배열이나 벡터 등에서 많이 썼습니다. 그 외 다른 경우에는 쓴 적이 없었습니다. 그러니, 이 자료구조에서 어떻게 fill 함수를 쓰는지를 중점적으로 설명하겠습니다. 예제 1번입니다. int 벡터 배열 v가 선언되어 있습니다. 여기에 들어있는 내용 전체를 0으로 초기화 하려고 합니다. 16번째 줄에 보면, v.begin() 부터, v.end()까지를 범위로 주었습니다. 이는 v의 시작과, 끝을 의미합니다. 이것을 어떠한 값으로 초기화를 시킬 건데요. 3번째 인자에 0이 들어갔음을 볼 수 ..
레퍼런스/예제 검색 결과
java에서 어떻게 Priority Queue를 쓸까요? 예제로 간단하게 알아보도록 하겠습니다. 먼저, 기본적으로 Comparable이 구현이 되어 있는 경우에는, 따로 compareTo를 정의하지 않아도, 알아서 우선순위가 높은 것 부터 빠져나옴을 알 수 있어요. 예를 들자면 String 클래스의 경우에는 다음과 같이 선언이 되어 있습니다. 여기서 중요한 것은 Comparable입니다. 비교 가능하다는 것입니다. 그러면 내부에 compareTo가 정의가 되어 있을 겁니다. 보니까 정의가 되어 있네요. 예제 프로그램 1을 봅시다. 보통 pq를 구현할 때, 이런 식으로 많이 구현합니다. pq가 비었는지 확인하기 위해서, isEmpty를 호출합니다. 그리고, 맨 위에 있는 원소를 꺼내기 위해서 poll 메서..
벡터를 복사하려고 할 때 어떤 함수를 쓸 수 있을까요? 벡터 v에 있는 내용을 그대로 u에 복사해 보겠습니다. 생성자를 이용한 방법 먼저 생각해 볼 수 있습니다. 이 문서에 나온 방법 중 하나를 써 보았습니다. 벡터 v 전체를 넘겼는데요. 이것은 v 전체를 u에 복사한다는 의미입니다. 문서에 따르면 이것을 copy constructor라고 합니다. 제대로 복사가 되었음을 알 수 있습니다. 문제는, 생성자는 새로운 벡터를 생성하는 것입니다. 생성과 복사는 미묘하게 다릅니다. 기존의 벡터에다가 다른 벡터에 저장이 되어 있는 값들을 복사할 수는 없을까요? 이 때 쓸 수 있는 것은, algorithm 헤더에 있는 copy 메서드입니다. 문서에 따르면, 아래와 같이 쓸 수 있다고 합니다. 예제를 2개만 해 보도록..
문자열 처리를 할 때, 뒤에 있는 공백을 제거하거나, 뒤에 붙은 특정한 문자를 제거해야 하는 경우가 있습니다. 그 처리를 해야 할 때 어떻게 해야 할까요? 이번 시간에는 파이선의 strip 메서드에 대해 알아보겠습니다. 예제 1번을 보겠습니다. st는 앞과 뒤에, 공백과 탭으로 이루어져 있습니다. st.strip()를 수행해 봅시다. 그러면 앞, 뒤에 붙은 공백, tab이 모두 제거 되었음을 알 수 있습니다. 이렇게 strip에 아무 인자도 오지 않은 경우에는 default로 화이트 문자들을 제거하게 된다고 문서에 명시되어 있습니다. 만약에, 앞과 뒤에 ., #, $하고, 화이트 문자가 들어오는 것을 지우려면 어떻게 하면 될까요? 이런 방법을 생각해 볼 수는 있습니다. strip를 2번 쓰면 된다. .,..
java의 파일 클래스는 파일이나 폴더에 대해서 조작을 수행할 수 있습니다. 당연하게도, 폴더 내에 있는 파일들도 조회가 가능합니다. 이번 시간에는 특정 폴더 내에 있는 파일을 순회하는 방법을 알아보도록 하겠습니다. 먼저 File 객체에 무슨 메서드가 있는지 보겠습니다. listFiles와, isDirectory가 눈에 보입니다. 우리가 필요한 것은 폴더 내에 있는 하위 폴더, 파일들을 모두 탐색하는 것입니다. 그렇다면, 탐색하고 있는 파일 객체가 디렉토리인지, 그냥 파일인지 판단을 해야 합니다. 만약에 디렉토리라면, 그 안에는 파일들이 있을 것이니, 파일 목록들을 불러와야 합니다. 이것을 위해 필요한 메서드는 listFiles입니다. 만약에 해당 파일 객체가 디렉토리가 아니라면 null을 리턴합니다. ..
최근댓글