c++ STL에서 fill을 어떻게 쓰는지 예제로 알아봅시다. 이것은 공식 문서에 따르면, forward 이터레이터 2개가 필요합니다. 그리고 해당 이터레이터는 이 문서에 설명이 자세히 되어 있습니다. 그런데 보통, 저는 배열이나 벡터 등에서 많이 썼습니다. 그 외 다른 경우에는 쓴 적이 없었습니다. 그러니, 이 자료구조에서 어떻게 fill 함수를 쓰는지를 중점적으로 설명하겠습니다. 예제 1번입니다. int 벡터 배열 v가 선언되어 있습니다. 여기에 들어있는 내용 전체를 0으로 초기화 하려고 합니다. 16번째 줄에 보면, v.begin() 부터, v.end()까지를 범위로 주었습니다. 이는 v의 시작과, 끝을 의미합니다. 이것을 어떠한 값으로 초기화를 시킬 건데요. 3번째 인자에 0이 들어갔음을 볼 수 ..
분류 전체보기 검색 결과
파이썬을 c처럼 짜다가, 이것 저것 기능을 알아가다 보니, 이렇게 짜면 코드가 단순해지겠네. 하는 것이 하나씩 있습니다. 그 중 하나는 filter입니다. 자바에서는 필터랑 람다랑 짝궁처럼 붙어다니기도 합니다. 파이썬에서도 마찬가지입니다. 공식 문서에 따르면, filter는 function과, iterable을 받습니다. 대표적으로 iterable 한 것은 list가 있습니다. 예제를 몇 개 보도록 하겠습니다. 먼저, func은 항상 True를 리턴합니다. 그리고 2번째 인자로 li를 넣었는데요. 여기에는 1, 2, 3, 4, 5가 저장되어 있습니다. 무엇이 나오는지 결과부터 보도록 하겠습니다. 그대로 1, 2, 3, 4, 5가 나오게 됩니다. 이는 뭐가 되었던지 간에 항상 True가 리턴이 되었기 때문..
java에서 예외와 에러의 차이가 무엇일까요? 공식 문서는 단 2개의 키워드로 답을 주고 있습니다. abnormal, serious, shouldn't not try catch. 각각, 비정상, 심각한, catch를 하지 말아야 하는을 의미합니다. 여기에 속한 대표적인 것들 중에서는, OOME와 stackoverflowError가 있습니다. 왜 이 둘이 예외가 아닌 에러인 건지 문득 궁금해 졌습니다. 위 프로그램을 보면, f라는 메서드가 계속 재귀 호출이 되고 있음을 알 수 있습니다. 실제로 이 프로그램은 아래와 같은 에러를 떨굽니다. StackOverflowError. 이것은 재귀 함수가 종료 조건 없이 계속 타고 들어갈 때 발생할 수 있습니다. 이 예외를 타고 들어가면, VirtualMachineEr..
이 글에서는 remote가 바라보는 url을 얻어오는 remote get-url 명령어에 대해 알아보겠습니다. 해당 명령어는 이 문서를 참고하시면 좋을 듯 싶습니다. 처음에 저는 gitlab에서 git_practice라는 빈 프로젝트를 만들었습니다. 위의 명령어 대로 수행하면 현재 폴더가 git_practice 레포지토리에 push가 되는데요. 제 깃랩 서버는 172.30.1.36이니, localhost 대신에 172.30.1.36이 들어간다는 것 빼고는 같습니다. 먼저, Users의 chokw 밑에 gitEx 밑에 git_example 폴더에서 작업을 하도록 하겠습니다. 요렇게 명령어를 입력해 주고 git init 명령어를 입력해 주면, 해당 폴더 밑에 git 폴더가 생성됩니다. 이렇게만 하고, git..
java에서 어떻게 Priority Queue를 쓸까요? 예제로 간단하게 알아보도록 하겠습니다. 먼저, 기본적으로 Comparable이 구현이 되어 있는 경우에는, 따로 compareTo를 정의하지 않아도, 알아서 우선순위가 높은 것 부터 빠져나옴을 알 수 있어요. 예를 들자면 String 클래스의 경우에는 다음과 같이 선언이 되어 있습니다. 여기서 중요한 것은 Comparable입니다. 비교 가능하다는 것입니다. 그러면 내부에 compareTo가 정의가 되어 있을 겁니다. 보니까 정의가 되어 있네요. 예제 프로그램 1을 봅시다. 보통 pq를 구현할 때, 이런 식으로 많이 구현합니다. pq가 비었는지 확인하기 위해서, isEmpty를 호출합니다. 그리고, 맨 위에 있는 원소를 꺼내기 위해서 poll 메서..
최근댓글