c++에서 list는 insert되거나 delete 되는 위치를 알 수 있을 때, insert나 delete를 빠르게 하기 위해서 씁니다. erase를 했으니, c++ list의 insert함수를 알아보고 어떻게 사용하는지 간단하게만 알아봅시다. 먼저 예제입니다. int를 저장하는 리스트 my_list가 있네요. foo 함수는 리스트 내부에 있는 친구들을 향상된 for문으로 head부터 tail까지 순회합니다. 다음에 insert할 위치와 insert할 item을 받아서, 특정 위치에 아이템을 넣습니다. 연산이 일어날 위치를 알고 있다면, 넣는 것이나 제거하는 것이나 시간이 오래 걸리지는 않습니다. 물론 다른 용법도 문서에 언급되고 있기는 하지만, 저 같은 경우 백준에서 문제를 풀 때 1번째, 단일 원소..
레퍼런스 검색 결과
안녕하세요. 이번 시간에는 c++ list의 erase 함수 사용법을 간단하게 알아봅시다. 이 함수는 범위 제거를 하거나, 원소 하나만 제거를 할 때 쓰이는데요. 보통 저는 전자보다는 후자의 용도로 많이 쓰곤 합니다. 사실 후자의 용도만 알아도 큰 문제 없기도 하고요. 예제를 보겠습니다. 먼저, 1, 2, 3, 4, 5를 순서대로 넣은 list가 하나 생성됩니다. 9번째 줄에, 리스트의 시작을 가리키는 이터레이터 iter를 리턴합니다. 그러면 iter는 1을 가리키게 됩니다. iter++을 하게 되면, 다음 원소를 가리키게 되는데요. 1 다음에 있는 원소는 2였으므로, 2를 가리키게 됩니다. 이 상태에서 (*iter)를 출력하면 2가 됩니다. 그 다음이 문제인데요. iter = my_list.erase(..
안녕하세요. 톡방에서 Long 객체에 저장된 값을 Integer type으로 conversion을 할 수 있는지에 대한 질문을 받았습니다. 이에 대한 제 답은 그냥 intValue 메서드를 써서 int type으로 강제 형변환한 값을 꺼낸 다음에, boxing 시키라는 것이였습니다. 이 답변을 하고 난 후에, 코드를 보니, Number 클래스가 있어서 간단하게 알아보았습니다. 이 클래스 안에는, intValue, longValue, floatValue, doubleValue, byteValue, shortValue 메소드가 있어요. 이들이 boxing 되어 있는 value를 type conversion하기 위한 것이다. 나름 합리적인 추론일 겁니다. 설명을 봐도 유추할 수 있는데요. super class..
java 9 버전 부터 Map.of 메소드가 생겼습니다. 이것을 언제 쓸 법 한지 알아보고, 간단하게 내부를 보도록 하겠습니다. 보시면, unmodifiable map을 리턴하게끔 되어 있습니다. 수정할 수 없는 맵을 리턴한다고 보면 맞겠네요. 예제 프로그램을 하나 보겠습니다. 먼저 key와 value값이 (1, 1)인 쌍과 (2, 2)인 쌍을 넣은 다음에, m에 들어있는 내용들을 toString으로 출력해 보겠습니다. 그러면, (2, 2)쌍과 (1, 1)쌍이 출력됩니다. 만약에 이 상황에서, 키를 추가한다고 하면 어떻게 될까요? 예제는 이렇습니다. 일단, Map.of는 둘 이상의 (k, v)쌍을 호출하게 되면 ImmutableCollections 안에 있는 MapN 객체를 만들어 내게 됩니다. 이것은 ..
제가 3회 코딩테스트 문제에 출제했던 가희와 무궁화호는 처음에 실수 민감형이였습니다. 어떤 버전이였는지는 old version의 코드를 보시면 대략 감이 오실 듯 싶어요. 부동 소수점은 0.1, 0.2 등을 정확하게 저장하지 못합니다. 정확하게 저장하려면 고정 소수점 등을 이용해야 합니다. 파이썬에서는 Decimal을 쓰면 그러한 일을 할 수 있습니다. 당연하게도 현재 버전의 풀이가 아닙니다. 이 글에서는 단지, 엄청나게 작은 오차도 허용하지 말아야 하는 경우에 파이썬에서는 어떻게 해야 하는지에 대해서만 언급하겠습니다. 24336번의 원래 버전은 눈치 채셨겠지만, 표정 속도를 소수점 첫째 자리에서 버림한 값을 출력하라 했습니다. 이게 실수 민감형인가요? 라고 물어보실 수도 있습니다만, 매우 쉽게 실수 오..
최근댓글