string
-
전화번호 무작위 생성개발/C·C++ 2024. 8. 3. 13:57
테스트 삼아 10,000개의 데이터를 선형 자료구조에서 중복 검사까지 하면서 생성해보니 6~7분 정도 걸리는 것 같다. C++에서 제공하는 라이브러리들은 비선형 구조이기 때문에 데이터 삽입과 탐색이 선형 자료구조에 비해 압도적으로 빠르다. PhoneNumberMaker 클래스에서는 PhoneNumberMakerImpl의 unique_pointer만 들고 있고 실제 구현은 PhoneNumberMakerImpl에서 이뤄진다. 이 구조의 장점은 데이터를 가리키는 포인터와 실제 데이터를 클래스로 구분할 수 있다는 점이다. 별도의 클래스 생성으로 아주 약간 메모리를 더 쓰긴 하지만 차이는 미미하다고 봐도 될 것 같다. PhoneNumberMaker은 일종의 인터페이스만 제공하는 역할을 한다 PhoneNumber..
-
[RegExp] $1개발/Javascript 2022. 6. 26. 02:32
카멜 케이스로된 변수 이름을 스네이크 케이스로 변환시켜주는 라이브러리의 동작 방식이 궁금했습니다. node_modules에서 코드를 살펴보니 처음 보는 정규식을 발견했습니다. /([\p{Lowercase_Letter}\d)([/p{Uppercase_Letter}])/gu \p는 문자가 유니코드에 속하는지는 검사합니다. 이를 사용하기 위해서 u 플래그를 써야 하죠. 그래서 g 플래그 뒤에 u를 추가해야 합니다. 여기에서 두 가지 캡처 그룹이 있는데요. 캡처 그룹은 ()를 사용해서 구분합니다. 여러가지 토큰을 그룹화해야할 때 캡처를 사용하죠. 위의 정규 표현식을 풀어보겠습니다. 1. ([\p{Lowercase_Letter}\d) - 유니코드에 속하는 소문자 혹은 숫자가 첫 번째 캡처 그룹\ 2. ([/p{U..